c language Importance

Document Sample
c language Importance Powered By Docstoc
					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
                 Why C Still Useful?
   C provides:
       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++  Java

   C is used:
       System software Compilers, Editors, embedded systems
       data compression, graphics and computational geometry, utility
       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

 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

              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 stdio.h.
   This file contains declarations for functions that the
    program needs to use. A declaration for the printf
    function is in this file.
              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. In this case,
    nothing is returned to the operating system.
              Simple C Program
   Line 3: {

   This opening bracket denotes the start of the program.
              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
   The compiler links code from these standard libraries to
    the code you have written to produce the final
   The "\n" is a special format modifier that tells the printf
    to put a line feed at the end of the line.
   If there were another printf in this program, its string
    would print on the next line.
            Simple C Program
   Line 5: }
     This closing bracket denotes the end of the program.
         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
   New value over-writes the previous value– “Destructive
   Value reading called “Non-destructive read-out”
                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;
     printf(“%d\n”, c);       5
     printf(“%d\n”, c++);     6
     printf(“%d\n\n”, c);

       c = 5;
       printf(“%d\n”, c);     5
       printf(“%d\n”, ++c);   6
       printf(“%d\n”, c);

    return 0;
                Thank You
   Thank You

Shared By:
Description: more commonly askable c lecture notes for .ppt.