Thapathali Campus    Introduction to C
Bibha Sthapit     
INTRODUCTION TO C 
1.  History of C 
An ancestor of C is BCPL  Basic Combined Programming Language. Ken Thompson, a 
Bell  Laboratory  scientist,  developed  a  version  of  BCPL,  which  he  called  B.  Dennis 
Ritchie, another computer scientist, developed a version called C in early 1970s that is 
modified  and  improved  BCPL.  Ritchie  originally  wrote  the  language  for  programming 
under UNIX operating system. Later Bell Laboratories rewrote UNIX entirely in C. 
 
In C, I/O support is provided in the form of library of the object code that can be linked 
with  the  users  program.  In  the  1970s  and  1980s,  many  organizations  wrote  and 
implemented  C  compilers,  which  differed  from  one  another  in  their  requirements  and 
libraries.  One type of machine might even have several different compilers. To establish 
uniformity  and  facilitate  portability,  in  1989  ANSI  (American  National  Standards 
Institute)  approved  standards  for  the  language  as  well  as  the  required  libraries.  For  e.g., 
ANSI specifies the standard I/O library, including stdio.h. 
2.  Characteristics of C 
We briefly list some of C's characteristics that define the language and also have lead to 
its  popularity  as  a  programming  language.  We  will  be  studying  many  of  these  aspects 
throughout the course.  
 
  Portability 
One  of  the  reasons  of  Cs  popularity  is  its  portability.  We  can  easily  transform  a 
program  written  in  C  from  one  computer  to  another  with  few  or  no  changes  and 
compile with appropriate compilers. 
  
  Faster and efficient 
C  is  desirable  because  it  is  faster  and  more  efficient  than  comparable  programs  in 
most other high level languages. For e.g., a program to increment a variable from 0 to 
15000 takes about 50 seconds in BASIC while it takes 1 second in C. 
  
  Supports structured programming 
It is well suited for structured programming, that means, the problem might be solved 
in  terms  of  function  modules  or  blocks.  The  modular  structure  makes  program 
debugging, testing and maintenance easier. 
 
  Extendibility 
Another  property  is  extendibility.  C  is  basically  a  collection  of  functions  that  are 
supported by C library. We can continuously add our own functions to C library. 
 
  Flexible 
C is a flexible language. It permits us to write any complex programs with the help of 
its rich set of in-built functions and operators. In addition, it permits the use of low-
level language. Hence it is also called middle-level language and therefore it is well 
suited for both system software and business package. 
  - 1 - 
Thapathali Campus    Introduction to C 
Bibha Sthapit     
3.  Basic structure of C programs 
C is a group of building blocks called functions, which is subroutine that may include one 
or more statements designed to perform a specific task. 
 
Documentation  section  consists  set  of  comment  lines  giving  the  name  of  program, 
author,  and  other  details  to  be  used  later  by  programmer.  The  compiler  ignores  any 
comment so they do not add to the file size during the time of execution. Comment lines 
which starts with // for single line comment OR /*.*/ for multiple line comment.  
 
Link section provides instruction to compiler to link functions from system library. 
 
Definition section defines all symbolic constants.  
 
Global declaration section declares all variables used in executable part globally. 
 
Main function section is a must section and one program contains only one main. Main 
function section starts with opening brace { and ends with closing brace }. It consists 
declaration  and  execution  section.  Declaration  part  declares  all  variables  used  in 
executable part. There must be at least one statement in executable part. Each statement 
ends with semicolon except for function definitions, control statements and loops.  
 
Subprogram  section  contains  all  user-defined  functions  that  are  called  in  main() 
function. 
 
Documentation section 
Link section 
Definition section 
Global declaration section 
Main() function section   
{ 
Declaration part 
Execution part 
} 
Subprogram section 
Function 1 
Function 2 
 
Every C program consists of one or more modules called functions. One- of the functions 
must be called main () .The program will always begin by executing the main() function, 
which  may  access  other  functions.  Any  other  function  definitions  must  be  defined 
separately, either ahead of or after main (). 
 
The main () function can be located somewhere in the program so that the computer can 
determine  where  to  start  the  execution.  This  function  can  be  allocated  anywhere  in  the 
program but the general practice is to place it as the first function for better readability 
 
Any function in C program consists of valid C statements and is linked together through 
function  calls.  A  function  is  analogous to the  subroutine or a procedure in other higher-
level  languages.  Every  function  in  a  program  has  a  unique  name  and  is  designed  to 
  - 2 - 
Thapathali Campus    Introduction to C 
Bibha Sthapit     
perform  a  specific  task.  Each  function  is  defined by of a block of statements, which are 
enclosed within a par and is treated as one single unit. 
 
Every instruction in C program is written as a separate statement. These statements must 
appear  in  the  same  order  in  which  we  wish  them  to  be  executed;  unless  logic  of  the 
problem demands a deliberate jump or transfer of control to a statement, which is out of 
sequence. 
 
Rules for statements: 
  Generally all C statements are entered in small cases letters. 
  Any C statement always ends with a semicolon (;). 
  C  has  no  specific  rules  about  the  position  at which different parts of a statement 
are to be written.  
 
Example:- 
#include <stdio.h>  //header files 
#include <conio.h> 
void main()  //main function 
{ 
  clrscr();    // library functiion to Clear the screen 
  printf(This  is  first  lecture  in  C  programming);//  library  function  that  prints  the 
given string 
  getch(); 
} 
4.  Steps to execution 
                    Source  Preprocessed  Object               Executable 
  code  source code  code      code 
 
 
 
 
Linker  Editor  Preprocessor  Compiler 
  External items 
 
Editor:  It  is  a  specialized  word  processor  to  create  and  edit  source  code  and  data. 
Source  code  is  a  program  typed  into  the  computer.  You  write  a  computer  program 
with words and symbols that are understandable to human beings. This is the editing 
part  of  the  development  cycle.  You  type  the  program  directly  into  a  window  on  the 
screen  and  save  the  resulting  text  as  a  separate  file.  This  is  often  referred  to  as  the 
source.  The  custom  is  that  the  text  of  a  C  program  is  stored  in  a  file  with  the 
extension .c for C programming language. 
 
Preprocessor:  It  is  a  program  that  removes  all  comments  and  modifies  source  code 
according to directives supplied in the program. A preprocessor directive begins with 
#  and  it  is  an  instruction  to  the  program.  For  e.g.,  #include<stdio.h>  instruct  the 
preprocessor to replace the directive with the contents of the file stdio.h. 
 
Compiler:  You  cannot  directly  execute  the  source  file.  To  run  on  any  computer 
system,  the  source  file  must  be translated into binary numbers understandable to the 
computer's Central Processing Unit. Compiler translates the preprocessed source code 
  - 3 - 
Thapathali Campus    Introduction to C 
Bibha Sthapit     
into machine language that consists sequences of 0s and 1s. If the compiler finds any 
error,  the  compilation  may  continue  in  order  to  detect  further  error  but  computer 
wont  produce  any  compiled  program.  If  compiler  doesnt  detect  any  error,  then  it 
produces  object  code,  which  is  machine  language  version  of  source  code.  This 
process produces an intermediate object file - with the extension .obj. The .obj stands 
for Object. 
 
Linker:  It  combines  all  the  object  code  of  a  program  with  necessary  items  (i.e., 
library  files)  to  form  an  executable  program.  Often  a  program  is  so  large  that  it  is 
convenient to break it down into smaller units, with each part stored in a separate file. 
Many  compiled  languages  come  with  library  routines  that  can  be  added  to  your 
program. Theses routines are written by the manufacturer of the compiler to perform 
a  variety  of  tasks,  from  input/output  to  complicated  mathematical  functions.  In  the 
case of C the standard input and output functions are contained in a library (stdio.h) 
so even the most basic program will require a library function. Moreover our program 
might  use  features  like  printf  that  are  defined  elsewhere,  perhaps  in  a  C  library. 
After  compilation  of  our  program  files,  the  computer  must  somehow  link  these 
separate  pieces  to  form  a  single  executable  program.  This  linking  is  done  by  linker. 
After linking the file extension is .exe which are executable files. 
 
Executable  files:  Thus  the  text  editor  produces  .c  source  files,  which  go  to  the 
compiler,  which  produces  .obj  object  files,  which  go  to  the  linker,  which  produces 
.exe executable file. You can then run .exe files as you can other applications, simply 
by typing their names at the DOS prompt or run using windows menu. 
5.  Procedure oriented programming (POP) language 
It  is  a  collection  of  number  of  instructions  where  each  instruction  tells  computer  to  do 
something.  In  the  procedural  oriented  approach,  the  problem  is  viewed  as  sequence  of 
things to be done such as reading, calculating and printing. To fulfill these tasks, number 
of  instructions  is  written  and  program  is  organized  into  different  groups  known  as 
functions. So, in this approach, attention is given to the procedure to solve the problem. A 
very little attention is given to the data that are used by different functions. 
 
Important features of POP: 
1.  Emphasis given to procedure 
2.  Programs are divided into different functions 
3.  Data have very low security 
4.  Top down approach is used in programs 
 
  - 4 -