16.1 Brief History of C++
C++ was developed in 1983 by Bjarne Stroustrup at AT&T.
Stroustrup was seeking a new object-oriented language with which to
write simulations. C++ has now become a mainstream systems programming
language and is increasingly being used to implement free software
packages. C++ underwent a lengthy standardization process and was
ratified as an ISO standard in 1998.
The first specification of C++ was available in a book titled `The
Annotated C++ Reference Manual' by Stroustrup and Ellis, also known as
the `ARM'. Since this initial specification, C++ has developed in
some areas. These developments will be discussed in 16.2 Changeable C++.
The first C++ compiler, known as cfront, was produced by
Stroustrup at AT&T. Because of its strong ties to C and because C is
such a general purpose systems language, cfront consisted of a
translator from C++ to C. After translation, an existing C compiler was
used to compile the intermediate C code down to machine code for almost
any machine you care to mention. C++ permits overloaded
functions--that is, functions with the same name but different argument
lists, so cfront implemented a name mangling algorithm
(see section 16.3.2 Name Mangling) to give each function a unique name in the
linker's symbol table.
In 1989, the first true C++ compiler, G++, was written by Michael
Tiemann of Cygnus Support. G++ mostly consisted of a new front-end to
the GCC portable compiler, so G++ was able to produce code for most
of the targets that GCC already supported.
In the years following, a number of new C++ compilers were produced.
Unfortunately many were unable to keep pace with the development of the
language being undertaken by the standards committee. This divergence
of implementations is the fundamental cause of non-portable C++