C_Intro by bdmantra


									Introduction to C


• “The Waite Group’s Turbo C Programming for
  PC”, Robert Lafore, SAMS

• “C How to Program”, H.M. Deitel, P.J. Deitel,
  Prentice Hall
                  What is C?
   C
       A language written by Brian Kernighan
        and Dennis Ritchie. This was to be the
        language that UNIX was written in to
        become the first "portable" language

In recent years C has been used as a general-
purpose language because of its popularity with
                        Why use C?
     • Mainly because it produces code that runs nearly
       as fast as code written in assembly language.
       Some examples of the use of C might be:
        –   Operating Systems
        –   Language Compilers
        –   Assemblers
        –   Text Editors
        –   Print Spoolers
        –   Network Drivers
        –   Modern Programs
        –   Data Bases
        –   Language Interpreters
        –   Utilities
Mainly because of the portability that writing standard C programs can
• In 1972 Dennis Ritchie at Bell Labs writes C and in
  1978 the publication of The C Programming
  Language by Kernighan & Ritchie caused a
  revolution in the computing world

• In 1983, the American National Standards
  Institute (ANSI) established a committee to
  provide a modern, comprehensive definition of C.
  The resulting definition, the ANSI standard, or
  "ANSI C", was completed late 1988.
•   C provides:
                Why C Still Useful?
     Efficiency, high performance and high quality s/ws
     flexibility and power
     many high-level and low-level operations  middle level
     Stability and small size code
     Provide functionality through rich set of function libraries
     Gateway for other professional languages like C  C++ 

• C is used:
     System software Compilers, Editors, embedded systems
     data compression, graphics and computational geometry,
      utility programs
     databases, operating systems, device drivers, system level
     there are zillions of lines of C legacy code
     Also used in application programs
  Software Development Method
• Requirement Specification
   – Problem Definition
• Analysis
   – Refine, Generalize, Decompose the problem definition
• Design
   – Develop Algorithm
• Implementation
   – Write Code
• Verification and Testing
   – Test and Debug the code
                 Development with C
• Four stages
     Editing: Writing the source code by using some IDE or editor
     Preprocessing or libraries: Already available routines
     compiling: translates or converts source to object code for a specific platform
        source code -> object code
     linking:     resolves external references and produces the executable module

 Portable programs will run on any machine but…..

 Note! Program correctness and robustness are most important than
  program efficiency
     Programming languages
• Various programming languages
• Some understandable directly by computers
• Others require “translation” steps
  – Machine language
     • Natural language of a particular computer
     • Consists of strings of numbers(1s, 0s)
     • Instruct computer to perform elementary operations
       one at a time
     • Machine dependant
        Programming languages
• Assembly Language

  – English like abbreviations

  – Translators programs called “Assemblers” to convert
    assembly language programs to machine language.

  – E.g. add overtime to base pay and store result in gross pay

             LOAD           BASEPAY

             ADD            OVERPAY

             STORE GROSSPAY
        Programming languages
• High-level languages

  – To speed up programming even further
  – Single statements for accomplishing substantial tasks
  – Translator programs called “Compilers” to convert high-
    level programs into machine language

  – E.g. add overtime to base pay and store result in gross pay
             grossPay = basePay + overtimePay
                       History of C
• Evolved from two previous languages
   – BCPL , B
• BCPL (Basic Combined Programming
  Language) used for writing OS & compilers
• B used for creating early versions of UNIX OS
• Both were “typeless” languages
• C language evolved from B (Dennis Ritchie –
  Bell labs)
 ** Typeless – no datatypes. Every data item occupied 1 word in memory.
                     History of C
• Hardware independent
• Programs portable to most computers
• Dialects of C
  – Common C
  – ANSI C
     • ANSI/ ISO 9899: 1990
     • Called American National Standards Institute ANSI C

• Case-sensitive
                C Standard Library
• Two parts to learning the “C” world
  – Learn C itself
  – Take advantage of rich collection of existing functions called
    C Standard Library
• Avoid reinventing the wheel
• SW reusability
          Basics of C Environment
• C systems consist of 3 parts
  – Environment
  – Language
  – C Standard Library
• Development environment has 6 phases
  –   Edit
  –   Pre-processor
  –   Compile
  –   Link
  –   Load
  –   Execute
           Basics of C Environment
                               Program edited in
Phase 1    Editor      Disk    Editor and stored
                               on disk
Phase 2 Preprocessor   Disk    program processes
                               the code
                               Creates object code
Phase 3   Compiler     Disk    and stores on disk

                               Links object code
Phase 4    Linker      Disk    with libraries and
                               stores on disk
          Basics of C Environment
                    Primary memory
                                       Puts program in
Phase 5   Loader                       memory

                    Primary memory
                                     Takes each instruction
Phase 6   CPU                        and executes it storing
                                     new data values
              Simple C Program
/* A first C Program*/

#include <stdio.h>

void main()

    printf("Hello World \n");
             Simple C Program
• Line 1: #include <stdio.h>

• As part of compilation, the C compiler runs a
  program called the C preprocessor. The
  preprocessor is able to add and remove code
  from your source file.
• In this case, the directive #include tells the
  preprocessor to include code from the file
• This file contains declarations for functions
             Simple C Program
• Line 2: void main()

• This statement declares the main function.
• A C program can contain many functions but
  must always have one main function.
• A function is a self-contained module of code
  that can accomplish some task.
• Functions are examined later.
• The "void" specifies the return type of main.
              Simple C Program
• Line 3: {

• This opening bracket denotes the start of the
             Simple C Program
• Line 4: printf("Hello World From About\n");

• Printf is a function from a standard C library
  that is used to print strings to the standard
  output, normally your screen.
• The compiler links code from these standard
  libraries to the code you have written to
  produce the final executable.
• The "\n" is a special format modifier that tells
  the printf to put a line feed at the end of the
              Simple C Program
• Line 5: }
•      This closing bracket denotes the end of the
          Escape Sequence
•   \n   new line
•   \t   tab
•   \r   carriage return
•   \a   alert
•   \\   backslash
•   \”   double quote
           Memory concepts
• Every variable has a name, type and value
• Variable names correspond to locations in
  computer memory
• New value over-writes the previous value–
  “Destructive read-in”
• Value reading called “Non-destructive read-
              Arithmetic in C
C operation             Algebraic C
Addition(+)             f+7             f+7
Subtraction (-) p-c               p-c
Multiplication(*)       bm              b*m
Division(/)      x/y, x , x y           x/y
Modulus(%)              r mod s         r%s
                 Precedence order
• Highest to lowest
     • ()
     • *, /, %
     • +, -
           z = pr%q+w/x-y

           z = p * r % q + w / x – y ;

                 1     2    4   3   5
           a(b+c)+ c(d+e)

           a * ( b + c ) + c * ( d + e ) ;

              3      1      5   4   2
            Decision Making
• Checking falsity or truth of a statement
• Equality operators have lower precedence
  than relational operators
• Relational operators have same precedence
• Both associate from left to right
              Decision Making
• Equality operators
     • ==
     • !=
• Relational operators
     •   <
     •   >
     •   <=
     •   >=
 Summary of precedence order
Operator          Associativity

   ()        left to right
* / %        left to right
   + -       left to right
< <= > >=    left to right
== !=        left to right
   =         left to right
         Assignment operators
•   =
•   +=
•   -=
•   *=
•   /=
•   %=
    Increment/ decrement operators
•   ++       ++a
•   ++       a++
•   --       --a
•   --       a--
Increment/ decrement operators
    int c;
    c = 5;            5
  c++);               5
 , c);
              Thank You
• Thank You

To top