History and Standardization: Programming Language
History and Standardization: Programming Language
form programming language, supporting procedural; object-oriented; generic; and (more recently)
functional programming paradigms, and is well-known for facilitating low-cost abstractions in code. If
any of the preceding concepts are unfamiliar to you, do not worry, they will be introduced in
subsequent sections.
During the 1990s C++ grew to become one of the most popular computer programming languages,
and it is still the third most popular language, according to the Tiobe rankings as of November
2017. C++ was first designed with a focus on systems programming, but its features also make it an
attractive language for creating end-user applications, especially those with resource constraints, or
that require very high performance. C++ is extensively used in game development, web
clients/server side, back office of financial applications and robotics.
Bjarne Stroustrup, a Computer Scientist from Bell Labs, was the designer and original implementer
of C++ (originally named "C with Classes") during the 1980s, as an enhancement to the C
programming language. C, which had also been created at Bell Labs for the purpose of
implementing the Unix operating system by Dennis Ritchie, gave users great control over hardware
at a higher conceptual level than assembly language (ASM), but still with limited expressivity.
Stroustrup decided to combine features for program organization from the object-
oriented Simula language with C's efficient use of hardware resources. Enhancements started with
the addition of object-oriented concepts like classes and virtual functions, followed by, among many
features, namespaces, operator overloading, templates, and exception handling. These and other
features are covered in detail in this book. Several features of C++ were later adopted by C,
including the const keyword for creating immutable values in a program, inline functions,
declarations in for loops , and C++-style comments (using the // symbol).
The C++ programming language is a standard recognized by the ANSI (The American National
Standards Institute), BSI (The British Standards Institute), DIN (The German national standards
organization), and several other national standards bodies, and was ratified in 1998 by the ISO (The
International Standards Organization) as ISO/IEC 14882:1998. The standard consists of two parts:
the Core Language and the Standard Library; the latter includes the Standard Template Library and
the Standard C Library (ANSI C 89).
The 2003 version, ISO/IEC 14882:2003, redefined the standard language as a single item. The STL
("Standard Template Library") that pre-dated the standardization of C++ (and was originally
implemented in Ada) became an integral part of the standard, and a requirement for a compliant
implementation of the same.
From 2004, the standards committee (which includes Bjarne Stroustrup) worked out the details of a
new revision of the standard, with C++11 (also called C++0x) approved on 12 August
2011. C++11 made the language more efficient, easier to use, and added more functionality to the
Standard Library. The specification for C++14 was released on 15 December 2014, with smaller
changes compared to C++11, and compiler support for this standard has followed quickly.
Several tables of compiler support for so-called modern C++ features are available.
Many other C++ libraries exist which are not part of the Standard, a popular example being Boost.
Also, non-Standard libraries written in C can generally be used by C++ programs.