Introduction to C
C is a general purpose, structured programming language. Its
instructions consist of terms that resemble algebraic expressions,
augmented by certain English keywords such as if, else, for, do and
while. In this respect it resembles high level structured programming
languages such as Pascal and FORTRAN. C also contains additional
features, that allow it to be used at a lower level, thus bridging the
gap between machine language and high level language. This flexibility
allows C to be used for systems programming as well as for applications
programming. Therefore C is called a middle level language.
C is characterized by the ability to write very concise source
programs, due in part to the large number of operators included within
the language. It has a relatively small instruction set, though actual
implementations include extensive library functions which enhance the
basic instructions. C encourages users to create their own library
fuctions.
An important characteristic of C is that its programs are highly
portable. The reason for this is that C relegates most computer
dependent features to its library functions. Thus, every version of C is
accompanied by its own set of library functions which are relatively
standardized. Therefore most C programs can be processed on many
different computers with little or no alteration.
History of C:
C was developed in the 1970′s by Dennis Ritchie at Bell Telephone Laboratories,Inc.
(now a part of AT&T). It is an outgrowth of two earlier languages,
called BCPL and B, which were also developed at Bell Laboratories.
The Combined Programming Language(CPL) was developed
at Cambridge University in 1963 with the goal of developing a common
programming language which can be used to solve different types of
problems on various hardware platforms. However it turned out to be too
complex, hard to learn and difficult to implement. Subsequently in 1967,
a subset of CPL, Basic CPL(BCPL) was developed by Martin Richards
incorporating only the essential features. However it was not found to
be sufficiently powerful. Around the same time another subset of CPL, a
language called B was developed by Ken Thompson
at Bell Labs. However it also turned out to be insufficient . Then, in
1972, Dennis Ritchie at Bell Labs developed the C language incorporating
the best features of both BCPL and B.
C was largely confined to use within Bell Labs until 1978, when Brian
Kernighan and Ritchie published a definitive description of the
language . The Kerninghan and Ritchie description of C is commonly referred to as ‘K &R C’.
Following the publication of ‘K&R C’,computer professionals,
impressed with C’s many desirable features, began to promote the use of
C. By the mid 1980′s the popularity of C had become widespread-many c
compilers and interpreters had been written for computers of all sizes
and many commercial application programs had been developed. Moreover,
many commercial software products that had originally been written in
other languages were rewritten in C in order to take advantage of its
efficiency and portability.
Early commercial implementations of C differed a little from
Kerninghan and Ritchie’s original description, resulting in minor
incompatibilities between different implementations. As a result, the American National Standards Institute(ANSI committee X3J11)
developed a standardized definition of C. Virtually all commercial
compilers and interpreters adhere to the ANSI standard. Many provide
additional features of their own.
C and Systems Programming:
There are several features of C, which make it suitable for systems programming. They are as follows:
- C is a machine independent and highly portable language.
- It is easy to learn; it has only 28 keywords.
- It has a comprehensive set of operators to tackle business as well as scientific applications with ease.
- Users can create their own functions and add to the C library to perform a variety of tasks.
- C language allows the manipulation of bits, bytes and addresses.
- It has a large library of functions.
- C operates on the same data types as the computer, so the codes generated are fast and efficient.
Structure of a C Program:
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. The main function is
normally,but not necessarily located at the beginning of the program.
The group of statements within main( ) are executed sequentially. When
the closing brace of main( ) is encountered, program execution stops and
control is returned to the operating system.
Any other function defintions must be defined separately, either ahead or after main( ). Each function must contain:
1. A function heading, which consists of the function name, followed by an optional list of arguments, enclosed in parantheses.
2. A return type written before the function name. It denotes the type of data that the function will return to the program.
3. A list of argument declarations, if arguments are included in the heading.
4. A compound statement, which comprises the remainder of the function.
The arguments(also called parameters) are symbols that represent
information being passed between the function and other parts of the
program.
Each compound statement is enclosed between a pair of braces{ }. The
braces may contain one or more elementary statements (called expression statements)
and other compound statements. Thus compound statements may be nested
one within another. Each expression statement must end with a
semicolon(;).
Comments (remarks) may appear anywhere
within a program as long as they are enclosed within the delimiters /*
and */. Comments are used for documentation and are useful in
identifying the program’s principal features or in explaining the
underlying logic of various program features.
Components of C Language:
There are five main components of the C Language:-
1. The character set: C uses the uppercase letters A
to Z, the lowercase letters a to z, the digits 0 to 9 and certain
special characters as building blocks to form basic program elements(e.
g. constants, variables, expressions, statements etc. ).
2. Data Types: The C language is designed to handle five primary data types, namely, character, integer, float, double and void; and secondary data types like array, pointer, structure, union and enum.
3. Constants: A constant is a fixed value entity that does not change its value throughout program execution.
4. Variables: A variable is an entity whose value
can change during program execution. They are used for storing input
data or to store values generated as a result of processing.
5. Keywords: Keywords are reserved words which have been assigned specific meanings in the C language. Keywords cannot be used as variable names.
The components of C language will be discussed in greater detail in
the following articles. This section gives only a brief introduction to
the components of C.