programming in c [module one]
TRANSCRIPT
Introduction to ‘C’
Compiled By :
Abhishek Sinha (MBA-IT, MCA)Director – Academics
Concept Institute of Technology, Varanasi.Website: www.conceptvns.org
What is C ? - Programming Language
Language is a medium of communication. It
is a system for encoding & decoding
information.
Program is a set of instructions to be
followed in a particular fashion to
accomplish a particular task.
Programming is a process to develop a
program
A Programming Language is an
artificial language designed to express
computations that can be performed
by a machine, particularly a
computer.
Brief Introduction of C
C is a programming language that follows thephilosophy of POP (Procedural OrientedProgramming) categorized under High LevelLanguage (some times under Middle LevelLanguage).
Developed by “Dennis Ritchie” in the year1972 at AT & T Bell Laboratory, USA.
It uses Compiler as a language translator toconvert C instruction to executable code.
Historical Development of C
Year Language Developer Remarks
1960 ALGOL International
Committee
Too general,
too abstract
1963 CPL Cambridge
University
Hard to learn,
difficult to implement
1967 BCPL Martin Richards,
Cambridge
University
Could deal with only
specific problems
1970 B Ken Thompson,
AT & T
Could deal with only
specific problems
1972 C Dennis Ritchie,
AT & T
Lost generality of
BCPL & B restored
ALGOL : Algorithmic LanguageCPL : Combined Programming LanguageBCPL : Basic Combined Programming Language
Basic Building Blocks
Variables: ‘the values which can be changed
or changes itself’, e.g. salary, age, time etc..
Constants: ‘the values which neither can be
changed nor changes itself’, e.g. PIE,
G(gravitational constant), g (gravitational
acceleration) etc..
Identifiers: ‘it is the name given to a value
by which we can identify whether it is a
variable or a constant’
Keywords: ‘reserved words whose meaning
is predefined to the complier & whenever
compiler comes across those words, it does
the appropriate task’. 32 reserved words are
there in C such as goto, break, continue,
return, void etc..
Operators: are the special symbols which
when applied on operands, gives us some
manipulated result, and result depends on
type of operator applied.
Operator Types:
Can be categorized on the basis of two criteria's:
a) No of Operands
b) Operation Performed
• Unary Operator (1 operand)
• Binary Operator (2 operand)
• Ternary Operator (3 operand)
• Arithmetic Operator (+, -, *, /, %)
• Assignment Operator (=)
• Relational Operator (<, <=, ==, >, >=, !=)
• Logical Operator (&&, ||, !)
• Conditional Operator ( ? :)
• Increment/Decrement Operator (++, --)
• Bitwise Operator (&, |, ~, ^, <<, >>)
• Some Special Operators ( [], (), *, ., ->,
malloc, calloc, realloc, sizeof, free)
Data Type: Tells us about three facts that a
programmer must know and is very
important:
• Type of value we can work on C Language
• Memory space required to store that value
(size depends on Operating System)
• Range of value it can store in that space
Making the use of these facts programmer
reserves the space for its data accordingly.
We can categorize Data Type in two flavors
•Primary Data Type•Numeric
•Integer•Short
•Signed
•Unsigned
•Long
•Real•Float
•Double
•Long Double
•Non Numeric•Character
•Signed
•Unsigned
•String (implemented as array)
•Secondary Data Type•Derived Data Type
•Array
•Pointer
•Function
•User Defined Data Type•Structure
•Union
•Enum
*At this stage our concern topic is Primary Data Type
Integer – denoted as int – by default it is signed int
Type Size (in bytes) Range Format String
short int 2 -32768 to +32767 %d
signed int 2 -32768 to +32767 %d
unsigned int 2 0 to 65535 %u
long int 4 -2147483648 to +2147483647 %ld
Real
Type Size (in bytes) Range Format String
float 4 3.4e-38 to 3.4e+38 %f
double 4 1.7e-308 to 1.7e+308 %lf
long double 8 3.4e-4932 to 3.4e+4932 %le
Character – denoted as char – by default it is signed char
Type Size (in bytes) Range Format String
signed char 1 -128 to +127 %c
unsigned char 1 0 to 255 %c
Variable Declaration: A process to reserve
space in memory for data values, where
those space are identified by the name of
the variable for further reference.
Syntax: <data_type> <variable_name>;
Example: int age; // by default takes signed int
This very statement makes the compiler to reserve
two byte of space in memory and identifies it with the
name age.
age name of location
location in memory
102 base address of location
MEMORY REPRESENTATION
Variable Initialization: A process to assign
initial value to a variable at the time of
declaration. By default it takes garbage
value (depends on storage class specifier)
Syntax:
<data_type> <variable_name> = <initial_value>;
Example: int age = 10;
This very statement makes the compiler to reserve
two byte of space in memory and identifies it with the
name age and assigns 10 as its initial value.age name of location
location in memory
102 base address of location
MEMORY REPRESENTATION
10
C Program StructureStatements Example
1. Documentation / Commnet Section /*Sample Program*/
2. Header File Inclusion #include<stdio.h>
3. Macro Definition #define MAX 10
4. Global Variable Declaration int x;
5. Sub-function(s) <RT> <Function Name>(<AL>)
{
//body of function
}
6. Main function main()
{
//body of main
}
Compilation Process
Source code (.c) Object code (.obj)
Expanded code (.i )
Assembly code (.asm) Executable code (.exe)
Pre-Processing
Compiling
Assembling
Linking & Loading
Making
First of all we make our source file with an
extension .c, now the code is expanded based on
Preprocessor Directives used and is stored in a
file having .i extension. From this code compiler
checks for syntax errors. If it is error free,
compiler converts it to the assembly language of
the machine being used. This is stored in file
having .asm extension. Now the assembler
creates .obj file. Then linking and loading
software makes the link with other files if
included in source code and those files are
loaded in memory. Now the making process
creates .exe file which is executed/run and gives
our output. Meanwhile at back scene another
file is created having .bak extension which keeps
the back-up of source code.