You are on page 1of 36

Introduction to C

Programming

Introduction
Books

 “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
programmers.
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


offer
History
 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.
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
programs
 databases, operating systems, device drivers, system level
routines
 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
Preprocessor
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
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 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
memory
 New value over-writes the previous value– “Destructive
read-in”
 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
• ()
• *, /, %
• +, -
Example
Algebra:
z = pr%q+w/x-y

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

Precedence:
1 2 4 3 5
Example
Algebra:
a(b+c)+ c(d+e)

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

Precedence:
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
main()
{
int c;
c = 5;
5
printf(“%d\n”, c); 5
printf(“%d\n”, c++); 6
printf(“%d\n\n”, c);

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

return 0;
}
Thank You
 Thank You

You might also like