Brief History of C++
Brief
History of C++
- During 1970 Dennis Ritchie created C Programming
language.
- In the early 1980′s, also at Bell Laboratories,
another programming language was created which was based upon the C
language.
- New language was developed by Bjarne Stroustrup
and was called C++.
- Stroustrup
states that the purpose of C++ is to make writing good programs easier and
more pleasant for the individual programmer.
- C++ programming language is extension to C Language.
- In C we have already used increment operator (++) .
Therefor we called C++ as “Incremented C” means Extension
to C.
Versions
of C++ Language
There are several versions of
C++ Programming Language -
- Visual C++
- Borland C++
- Turbo C++
- Standardize C++ [ANSI C++]
History of C++
The C++ programming language has
a history going back to 1979, when Bjarne
Stroustrup was doing work for his Ph.D. thesis. One of the languages
Stroustrup had the opportunity to work with was a language called Simula, which
as the name implies is a language primarily designed for simulations. The Simula 67 language -
which was the variant that Stroustrup worked with - is regarded as the first
language to support the object-oriented programming paradigm. Stroustrup found
that this paradigm was very useful for software development, however the Simula
language was far too slow for practical use.
Shortly thereafter, he began work on "C with Classes", which as the
name implies was meant to be a superset of the C language. His goal was to add
object-oriented programming into the C language, which was and still is a
language well-respected for its portability without sacrificing speed or
low-level functionality. His language included classes, basic inheritance,
inlining,
default
function arguments, and strong type checking in addition to all the
features of the C language.
The first C with Classes compiler was called Cfront, which was derived from a C
compiler called CPre. It was a program designed to translate C with Classes
code to ordinary C. A rather interesting point worth noting is that Cfront was written
mostly in C with Classes, making it a self-hosting compiler (a compiler that
can compile itself). Cfront would later be abandoned in 1993 after it became
difficult to integrate new features into it, namely C++ exceptions.
Nonetheless, Cfront made a huge impact on the implementations of future
compilers and on the Unix operating system.
In 1983, the name of the language was changed from C with Classes to C++. The
++ operator in the C language is an operator for incrementing a variable, which
gives some insight into how Stroustrup regarded the language. Many new features
were added around this time, the most notable of which are virtual
functions, function
overloading, references with the & symbol, the const keyword, and
single-line comments using two forward slashes (which is a feature taken from
the language BCPL).
In 1985, Stroustrup's reference to the language entitled The C++ Programming
Language was published. That same year, C++ was implemented as a commercial
product. The language was not officially standardized yet, making the book a
very important reference. The language was updated again in 1989 to include
protected and static members, as well as inheritance from several classes.
In 1990, The Annotated C++ Reference Manual was released. The same year,
Borland's Turbo C++ compiler would be released as a commercial product. Turbo
C++ added a plethora of additional libraries which would have a considerable
impact on C++'s development. Although Turbo C++'s last stable release was in
2006, the compiler is still widely used.
In 1998, the C++ standards committee published the first international standard
for C++
ISO/IEC 14882:1998, which would be informally known as C++98. The
Annotated C++ Reference Manual was said to be a large influence in the
development of the standard. The
Standard Template Library, which began its conceptual development in 1979,
was also included. In 2003, the committee responded to multiple problems that
were reported with their 1998 standard, and revised it accordingly. The changed
language was dubbed C++03.
In 2005, the C++ standards committee released a technical report (dubbed TR1)
detailing various features they were planning to add to the latest C++
standard. The new standard was informally dubbed C++0x as it was expected to be
released sometime before the end of the first decade. Ironically, however, the
new standard would not be released until mid-2011. Several technical reports
were released up until then, and some compilers began adding experimental
support for the new features.
In mid-2011, the
new C++ standard (dubbed C++11) was finished. The Boost library project made a considerable
impact on the new standard, and some of the new modules were derived directly
from the corresponding Boost libraries. Some of the new features included
regular expression support (details on regular expressions may be found here), a comprehensive
randomization library, a new C++ time library, atomics support, a standard
threading library (which up until 2011 both C and C++ were lacking), a new for loop syntax
providing functionality similar to foreach loops in certain other languages,
the auto keyword, new container classes, better support for unions and
array-initialization lists, and variadic templates.
Comments
Post a Comment