The C
programming language was devised in the early 1970s by Dennis M. Ritchie, an
employee from Bell Labs (AT&T).
In the 1960s,
Ritchie worked with several other employees of Bell Labs (AT&T) on a
project called Multics. The goal of the project was to develop an operating
system for the large computer that could be used by many users. Bell Labs withdrew
from the project in 1969, as it could not produce an economically useful
system. Hence the employees of Bell Labs (AT&T) had to search for another
project to work on (mainly Dennis M. Ritchie and Ken Thompson).
Ken Thompson
began to work on the development of a new file system for the DEC PDP-7, in
assembler. Soon they began to make improvements and add expansions. They used
the knowledge from the Multics project to add improvements. After a while a
complete system was born. Brian W. Kernighan called the system UNIX, a
sarcastic reference to Multics. The whole system was still written in assembly
code.
Besides
assembler and FORTRAN, UNIX also had an interpreter for B, a programming language
developed by Ken Thompson in 1969-70. One had to write many pages of code to
perform a specific task in assembler. A high-level language like B made it
possible to write the same task in just a few lines of code. So the language
B was used for further development of the UNIX system.
A drawback of
the B language was that it did not know data-types. Another functionality that
the B language did not provide was the use of “structures”. The lag of these
things formed the reason for Dennis M. Ritchie to develop the programming language
C. In 1971-73, Dennis M. Ritchie turned the B language into the C language,
keeping most of the language B syntax while adding data-types and many other
changes. The C language had a powerful mix of high-level functionality and the
detailed features required to program an operating system. Therefore many of
the UNIX components were eventually rewritten in C (the UNIX kernel itself was
rewritten in 1973 on a DEC PDP-11).
The
programming language C was written down, by Kernighan and Ritchie, in a now
classic book called “The C Programming Language, 1st edition”. Kernighan has
said that he had no part in the design of the C language: “It’s entirely Dennis
Ritchie’s work”. But he is the author of the famous “Hello, World” program and
many other UNIX programs.
For years the
book “The C Programming Language, 1st edition” was the standard on the language
C. In 1983 a committee was formed by the American National Standards Institute
(ANSI) to develop a modern definition for the programming language C (ANSI
X3J11). In 1988 they delivered the final standard definition called as ANSI C.
The standard
ANSI C made little changes on the original design of the C language (they had
to make sure that old programs still worked with the new standard). Later on,
the ANSI C standard was adopted by the International Standards Organization
(ISO). The correct term should therefore be ISO C, but everybody still calls it
ANSI C.