0% found this document useful (0 votes)
12 views6 pages

2 History Versions of C

C++ is a widely used programming language developed by Bjarne Stroustrup in 1979, initially named 'C with Classes' before being renamed C++ in 1983. The language has undergone several revisions, with significant versions including C++98, C++11, C++14, C++17, C++20, and the upcoming C++23, each introducing new features and improvements. C++ continues to evolve and gain popularity, currently ranking second among programming languages as of November 2024.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views6 pages

2 History Versions of C

C++ is a widely used programming language developed by Bjarne Stroustrup in 1979, initially named 'C with Classes' before being renamed C++ in 1983. The language has undergone several revisions, with significant versions including C++98, C++11, C++14, C++17, C++20, and the upcoming C++23, each introducing new features and improvements. C++ continues to evolve and gain popularity, currently ranking second among programming languages as of November 2024.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

SECTION 1 : INTRODUCTION TO C++ LEARN C++ WITH DCSK!

| CLASS 2 : HISTORY & VERSIONS OF C++ |

1. Introduction: C++ History


C++ is a much-used general purpose programming language with which highly efficient
programs can be written. Because of that, it is also popular in safety-critical application areas
such as those in the automotive industry, where MISRA is one of the most popular coding
standards.

2. How C++ Began


C++ was invented by Danish computer scientist Bjarne Stroustrup at AT&T Bell Labs in 1979. It
originated from analysis of the UNIX kernel to investigate to what extent it can be distributed
over a network.

While Stroustrup was working on his Ph.D thesis in the Computing Laboratory of
Cambridge University, he was impressed by the program organization and concurrency
features of the Simula programming language, which he used to write a simulator. However, he
discovered that the implementation did not scale well, so eventually the simulator was
rewritten in BCPL.

3. C with Classes
For his work at AT&T Bell Labs, Stroustrup decided to enhance the C programming language
with language features like those he found so useful in Simula. He started writing a
preprocessor Cpre that converted C programs with Simula-like classes into regular C code that
could be compiled with existing compilers. The new language was initially simply named, "C
with Classes."

C with Classes provided:


• Classes
• Derived classes
• Public/private access control
• Constructors and destructors
• Call and return functions (soon removed due to lack of popularity)
• Friend classes
• Type checking of function arguments
• Inline functions
• Default arguments
• Overloading of the assignment operator.

MR. DEVLOVEPER 1
SECTION 1 : INTRODUCTION TO C++ LEARN C++ WITH DCSK!

4. C++ Naming
At this point in C++ history, the language needed a proper name. For some time, it had been
called C84, but that was considered ugly and confusing. Eventually, in 1983, it was computer
scientist Rick Mascitti who suggested the name C++, which can be interpreted as the language
being the successor of C. He renamed “C++” based on Increment operator (++) in C language.
And also added some new features, The new language features included:
• Virtual functions
• Function name and operator overloading
• References
• Const
• User-controlled free-store memory control
• Improved type checking and C++ style comments (which were actually taken from
BCPL).

In 1986 the first revision of the "C++ Programming Language" book was published,
describing the language according to the Cfront 1.0 compiler. [ Compiler translates the
programming code to machine understandable code ]

5. C++ Release 2.0


The second version of the language was completed in 1989 and increased stability of its
definition and implementation.
C++ 2.0 added:
• Multiple inheritance
• Type-safe linkage
• Improved resolution of overloaded functions
• Recursive definition of assignment and initialization
• Improved facilities for user-defined memory management
• Abstract classes
• Static member functions
• Const member functions
• Protected members
• Overloading of operator -> and pointers to members.

6. C++ Release 3.0


This was the final C++ version before the language was standardized. C++ 3.0 was completed
in 1991 and added class and function templates. There was supposed to be a C++ 4.0 release
in 1993, adding exception handling for which an initial implementation was done by
HewlettPackard in 1992, but it was never completed.

MR. DEVLOVEPER 2
SECTION 1 : INTRODUCTION TO C++ LEARN C++ WITH DCSK!

7. C++98
This version was released in the year 1998. An important activity was the definition of the
standard library, including the Standard Template Library (STL). Furthermore, it added:
• Real-time type information (RTTI: dynamic_cast, typeid)
• Covariant return types
• Cast operators
• Mutable Bool
• Declarations in conditions
• Member templates
• In-class member initializers
• Separate compilation of templates (export)
• Template partial specialization
• Partial ordering of overload function templates.

8. C++03 and Embedded C++


In 2003, C++03 was a maintenance release of C++98 amended with the corrections approved
for the technical corrigendum. The committee had also started thinking about C++0x.

Meanwhile, a consortium of Japanese embedded systems tools developers, including Toshiba,


Hitachi, Fujitsu, and NEC, had proposed the Embedded C++ (EC++) subset. This was intended
for embedded systems programming.

The subset removed language features that could hurt performance or were perceived as too
complicated for developers, and thus considered as productivity or correctness hazards.

The banned features were multiple inheritance, templates, exceptions, RTTI, new-style casts
and namespaces. Also, STL and locales were removed from the standard library and an
alternative for iostreams was provided.

Interestingly, EC++ has not been used a lot, and the "Extended EC++" superset that added
templates was more popular.

In response to EC++, the committee released the Performance Technical Report. The
Performance Technical Report provided a model of the time and space overhead implied by the
use of various C++ language and library features. In doing so, it addressed concerns about
performance problems. Furthermore, it presented techniques for efficient implementation.

Consequently, the ISO committee did not endorse EC++.

MR. DEVLOVEPER 3
SECTION 1 : INTRODUCTION TO C++ LEARN C++ WITH DCSK!

9. C++11
In 2011, this version introduced many new major features, so that for many programmers, it felt
like a new language!
C++11 added:
• Memory model
• Concurrency
• Auto and decltype
• Range-for
• Move semantics and rvalue references
• Uniform initialization
• Nullptr
• Constexpr functions
• User-defined literals
• Raw string literals
• Attributes
• Lambdas
• Variadic templates
• Template aliases (using)
• Noexcept
• Override and final
• Static_assert
• Long long
• Default member initializers Initialization in a constructor
• Enum classes.

10. C++14
In 2014, this version introduced to have an alteration of major and minor releases, so that
C++14 was aimed at completing C++11. It added:
• Binary literals (0b)
• Digit separators
• Variable templates
• Function return type deduction
• Generic lambdas
• Local variables in constexpr functions
• Move capture
• Accessing a tuple by type
• User-defined literals in the standard library.

MR. DEVLOVEPER 4
SECTION 1 : INTRODUCTION TO C++ LEARN C++ WITH DCSK!

11. C++17
In 2017, after the minor C++14 release, C++17 (https://www.perforce.com/blog/qac/should-
iadopt-cpp17) should have been a major update. Unfortunately some major expected features,
such as concepts and coroutines, did not make it in this version.

The new major features that did make it include:


• Class template argument deduction (introducing deduction guides)
• Structured bindings Inline variables
• Fold expressions
• Explicit test in conditions
• Guaranteed copy elision
• Stricter expression evaluation order
• Auto as a template argument type
• Standard attributes to catch common mistakes
• Hexadecimal floating-point literals
• "if constexpr".

12. C++20
In 2020, the major features that did not make it in C++17 were added in C++20. As a result, this
version is a bigger step forward, comparable with the step from C++03 to C++11, so we can say
that this version is the major upgrade that C++17 was supposed to be.

The major new language features are:


• Coroutines
• Concepts
• Modules.

Other new language features are compile-time computation support, spaceship operator
<=>, concurrency improvements, designated initializers, and class types in non-type
template parameters (also allowing string literals as template parameters). Furthermore,
the new standard library features are ranges, date, span, and format.

13. C++23
This version introduced in Oct 2024, because of due to administrative red tape between final
approval and publication. And it is the current latest version of C++ in 2025.

MR. DEVLOVEPER 5
SECTION 1 : INTRODUCTION TO C++ LEARN C++ WITH DCSK!

14. The Future of C++


C++ has come a long way since the first steps in 1979 and continues to evolve.

C++23 will soon be released with small but significant adjustments, and work has already
begun on C++26.

In Dec 2022, C++ ranked third and in Nov 2024, the language ranks second after Python.

C++ continues to rise in popularity, and its use is expanding — including creating applications
for virtual reality (VR) via the Unreal Engine, and also in cryptocurrency applications.

----------------------------------------------- THANK YOU ----------------------------------------------

MR. DEVLOVEPER 6

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy