This document provides an introduction to the C programming language. It discusses C's history, why it is useful, and the basics of C programming. C was created in the early 1970s and became widely popular due to its ability to produce efficient, portable code. It discusses C's roots in earlier languages like B and BCPL. The document also covers C standard libraries, basic C programs and syntax, variables, operators, and decision making in C.
2. Books
s “The Waite Group’s Turbo C Programming for PC”,
Robert Lafore, SAMS
s “C How to Program”, H.M. Deitel, P.J. Deitel,
Prentice Hall
3. What is C?
s C
s 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.
4. Why use C?
s 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
5. History
s 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
s 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.
6. Why C Still Useful?
s C provides:
x Efficiency, high performance and high quality s/ws
x flexibility and power
x many high-level and low-level operations middle level
x Stability and small size code
x Provide functionality through rich set of function libraries
x Gateway for other professional languages like C C++ Java
s C is used:
x System software Compilers, Editors, embedded systems
x data compression, graphics and computational geometry, utility
programs
x databases, operating systems, device drivers, system level
routines
x there are zillions of lines of C legacy code
x Also used in application programs
7. Software Development Method
s Requirement Specification
– Problem Definition
s Analysis
– Refine, Generalize, Decompose the problem definition
s Design
– Develop Algorithm
s Implementation
– Write Code
s Verification and Testing
– Test and Debug the code
8. Development with C
s 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
9. Programming languages
s Various programming languages
s Some understandable directly by computers
s 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
10. Programming languages
s 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
11. Programming languages
s 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
12. History of C
s Evolved from two previous languages
– BCPL , B
s BCPL (Basic Combined Programming Language) used
for writing OS & compilers
s B used for creating early versions of UNIX OS
s Both were “typeless” languages
s C language evolved from B (Dennis Ritchie – Bell labs)
** Typeless – no datatypes. Every data item occupied 1 word in memory.
13. History of C
s Hardware independent
s Programs portable to most computers
s Dialects of C
– Common C
– ANSI C
• ANSI/ ISO 9899: 1990
• Called American National Standards Institute ANSI C
s Case-sensitive
14. C Standard Library
s Two parts to learning the “C” world
– Learn C itself
– Take advantage of rich collection of existing functions
called C Standard Library
s Avoid reinventing the wheel
s SW reusability
15. Basics of C Environment
s C systems consist of 3 parts
– Environment
– Language
– C Standard Library
s Development environment has 6 phases
– Edit
– Pre-processor
– Compile
– Link
– Load
– Execute
16. 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
17. 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
18. Simple C Program
/* A first C Program*/
#include <stdio.h>
void main()
{
printf("Hello World n");
}
19. Simple C Program
s Line 1: #include <stdio.h>
s 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.
s In this case, the directive #include tells the
preprocessor to include code from the file stdio.h.
s This file contains declarations for functions that the
program needs to use. A declaration for the printf
function is in this file.
20. Simple C Program
s Line 2: void main()
s This statement declares the main function.
s A C program can contain many functions but must
always have one main function.
s A function is a self-contained module of code that can
accomplish some task.
s Functions are examined later.
s The "void" specifies the return type of main. In this case,
nothing is returned to the operating system.
21. Simple C Program
s Line 3: {
s This opening bracket denotes the start of the program.
22. Simple C Program
s Line 4: printf("Hello World From Aboutn");
s Printf is a function from a standard C library that is used
to print strings to the standard output, normally your
screen.
s The compiler links code from these standard libraries to
the code you have written to produce the final
executable.
s The "n" is a special format modifier that tells the printf
to put a line feed at the end of the line.
s If there were another printf in this program, its string
would print on the next line.
23. Simple C Program
s Line 5: }
s This closing bracket denotes the end of the program.
24. Escape Sequence
s n new line
s t tab
s r carriage return
s a alert
s backslash
s ” double quote
25. Memory concepts
s Every variable has a name, type and value
s Variable names correspond to locations in computer
memory
s New value over-writes the previous value– “Destructive
read-in”
s Value reading called “Non-destructive read-out”
26. 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
28. Example
Algebra:
z = pr%q+w/x-y
C:
z = p * r % q + w / x – y ;
Precedence:
1 2 4 3 5
29. Example
Algebra:
a(b+c)+ c(d+e)
C:
a * ( b + c ) + c * ( d + e ) ;
Precedence:
3 1 5 4 2
30. Decision Making
s Checking falsity or truth of a statement
s Equality operators have lower precedence than
relational operators
s Relational operators have same precedence
s Both associate from left to right
31. Decision Making
s Equality operators
• ==
• !=
s Relational operators
•<
•>
• <=
• >=
32. Summary of precedence order
Operator Associativity
() left to right
* / % left to right
+ - left to right
< <= > >= left to right
== != left to right
= left to right