C was developed at Bell Laboratories by Brian Kernigan and others as a suitable language in which to implement the UNIX computer operating system on which they were working (c1970). At this time (for reasons of efficiency) much systems programming was still undertaken using assembly languages, i.e. using very low-level machine instructions specific to particular types of computer. However, a number of specialised systems programming language were in existence, one of which was called BCPL. Brian Kernighan took this language, extended it by adding various further features so as to enhance its usefulness and called the result B. After some initial testing it became clear that a more sophisticated language was needed. The result was C. This was then the language in which the UNIX operating system together with most of its commands was implemented at the start of the 1970s (thus in computer language terms C is a relatively old language). The major advantage of C is that it combines the advantages of a high-level programming language with the facilities and efficiency of an assembly language. This is achieved through (1) a relaxation of full type checking, and (2) the ability to perform arithmetic on store addresses and operations on bit patterns. Most of todays operating systems and other systems programs, such as those for handling windows and menus, are written in C.
The major disadvantages of C are (1) that the code is not very readable, and (2) due to the limitations of the nature of the type checking used, that it is relatively easy to unintentionally write erroneous programs (especially in comparison with language such as Pascal). Consequently C is not a good beginners language.
Although C was originally designed as a systems programming language its use has subsequently spread to many other areas. Today C is regarded as a general purpose programming language.
Created and maintained by Frans Coenen. Last updated 03 July 2001