Borland C++ Builder: The Complete Reference



T
his chapter presents an overview of the origins, uses, and philosophy of the C
programming language.

The Origins of the C Language
Dennis Ritchie invented and first implemented the C programming language on
a DEC PDP-11 that used the UNIX operating system. The language is the result of a
development process that started with an older language called BCPL. Martin Richards
developed BCPL, which influenced Ken Thompson's invention of a language called B,
which led to the development of C in the 1970s.

For many years, the de facto standard for C was the version supplied with the
UNIX operating system. It was first described in The C Programming Language by
Brian Kernighan and Dennis Ritchie (Englewood Cliffs, N.J.: Prentice-Hall, 1978). In
the summer of 1983, a committee was established to create an ANSI (American National
Standards Institute) standard that would define the C language. The standardization
process took six years (much longer than anyone reasonably expected).

The ANSI C standard was finally adopted in December 1989, with the first copies
becoming available in early 1990. The standard was also adopted by ISO (International
Standards Organization), and the resulting standard was typically referred to as
ANSI/ISO Standard C, or simply ANSI/ISO C. In 1995, Amendment 1 to the C standard
was adopted, which, among other things, added several new library functions. The
1989 standard for C, along with Amendment 1, became a base document for Standard
C++, defining the C subset of C++. The version of C defined by the 1989 standard is
commonly referred to as C89. This is the version of C that C++ Builder supports.

It must be noted that recently a new standard for C, called C99, has been created.
For the most part, it leaves the features of C89 intact and adds a few new ones.
However, C++ Builder does not support the new features added by C99. This is
not surprising because at the time of this writing, no commonly available compiler
supports C99, and C89 still describes what programmers think of as C. Furthermore,
as just explained, it is the C89 version of C that forms the C subset of C++. Because
the version of C supported by C++ and C++ Builder is C89, it is the version of C
described in this book. (The interested reader can find a full description of the C99
standard in C: The Complete Reference, 4th Ed. by Herbert Schildt, Berkeley:
Osborne/McGraw-Hill, 2000.)

A Middle-Level Language