The programming language C is a general-purpose language has often been termed as a “Pseudo high level language” or a “Middle level language” by many programmers. This is not because of its lack of programming power but because of its capability to access the systems from low level functions.
This programming language has been closely associated with the UNIX operating system. In fact C was invented specifically to implement UNIX operating system. The instructions of C language are compiled to assembly code; therefore, depending on the complexity of the code and on the compiler optimization capabilities, the code of C language may run as fast as assembly.
Many of the important ideas of programming language C stem from the language BCPL (Basic Combined Programming Language), developed by Martin Richards. The influence of BCPL on C proceeded indirectly through the language B, which was written by Ken Thompson in 1969 at Bell Labs, for the first UNIX system on a DEC PDP-7. Ken Thompson used assembly language and programming language B to produce the initial versions of the UNIX operating system. BCPL and B were “type-less” languages in which variables were simply words in memory whereas language C provides a rich variety of data types.
Dennis Ritchie of Bell Laboratories later converted B into C by retaining most of B’s syntax in 1972 and wrote the first compiler. This was implemented on DEC’s PDP 11 and it was first used as the system’s language for rewriting the UNIX operating system. Later on, OS UNIX, its tools and C grew simultaneously.
In 1978, a book entitled ‘The C Programming Language’ wrote by Kernighan and Ritchie that became a revolution in the computing world and the programing language definition for almost a decade.
In the beginning of 1983, the American National Standards Institute (ANSI) X3J11 established a committee to provide a modern, comprehensive definition of C language. The resulting definition was the ANSI standard, or “ANSI C”, was completed late in 1988. It is not forced upon any programmer, but since it is so widely accepted, it would be economically unwise for any systems programmer or compiler writer not to conform to the standard.
In figure shows the complete taxonomy of C language with year of introduced. During 1990s C++ and JAVA programming languages becomes popular among the programmers, so the standardization committee of C felt that a few features of C++ and JAVA added to C programming language, C would enhance its usefulness. So, in 1999 with significant changes modified version of C language comes to be known as C99 and it still successful works.
This development of Unix in C language had two important consequences:
1. Portability: C language made it much easier to port UNIX to newly developed computers, because it eliminated the need to translate the entire operating system to the new assemble language by hand: Steps involve in this portability functionality of UNIX:
- First, write a C language code to assembly language compiler for the new machine.
- Next, use the new compiler to automatically translate the UNIX C language source code into the new machine’s assembly language.
- Finally, added only a small amount of new programming code where absolutely required by hardware differences with the new machine.
2. Improvability: C language made UNIX easy to customize and improve by any programmer that could learn the high-level C programming language. Many did learn C language, and went on to experiment with modifications to the operating system, producing many useful new extensions and enhancements.