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 the philosophy of POP (Procedural Oriented Programming) categorized under High Level Language (some times under Middle Level Language).  Developed by “Dennis Ritchie” in the year 1972 at AT & T Bell Laboratory, USA.  It uses Compiler as a language translator to convert 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 Language CPL : Combined Programming Language BCPL : 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 Structure Statements 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.
END OF CHAPTER ONE Send your feedback/queries at abhisheksinha786@gmail.com

Programming in C [Module One]

  • 1.
    Introduction to ‘C’ CompiledBy : Abhishek Sinha (MBA-IT, MCA) Director – Academics Concept Institute of Technology, Varanasi. Website: www.conceptvns.org
  • 2.
    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
  • 3.
    A Programming Languageis an artificial language designed to express computations that can be performed by a machine, particularly a computer.
  • 4.
    Brief Introduction ofC  C is a programming language that follows the philosophy of POP (Procedural Oriented Programming) categorized under High Level Language (some times under Middle Level Language).  Developed by “Dennis Ritchie” in the year 1972 at AT & T Bell Laboratory, USA.  It uses Compiler as a language translator to convert C instruction to executable code.
  • 5.
    Historical Development ofC 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 Language CPL : Combined Programming Language BCPL : Basic Combined Programming Language
  • 6.
    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’
  • 7.
     Keywords: ‘reservedwords 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.
  • 8.
     Operator Types: Canbe 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)
  • 9.
     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.
  • 10.
    We can categorizeData 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
  • 11.
    Integer – denotedas 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
  • 12.
     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
  • 13.
     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
  • 14.
    C Program Structure StatementsExample 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 }
  • 15.
    Compilation Process Source code(.c) Object code (.obj) Expanded code (.i ) Assembly code (.asm) Executable code (.exe) Pre-Processing Compiling Assembling Linking & Loading Making
  • 16.
    First of allwe 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.
  • 17.
    END OF CHAPTERONE Send your feedback/queries at abhisheksinha786@gmail.com