0% found this document useful (0 votes)
21 views4 pages

History of C and C++ A Comprehensive Story

The document outlines the history of the C and C++ programming languages, starting with the invention of C by Dennis Ritchie in the early 1970s for systems programming, particularly for UNIX. It details the evolution of C++ by Bjarne Stroustrup in the late 1970s, combining C's efficiency with object-oriented features from Simula67, leading to various standardized versions of C++ from 1998 to 2023. Key milestones and features introduced in each version are highlighted, showcasing the languages' development and enhancements over time.

Uploaded by

Khan Bangash
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)
21 views4 pages

History of C and C++ A Comprehensive Story

The document outlines the history of the C and C++ programming languages, starting with the invention of C by Dennis Ritchie in the early 1970s for systems programming, particularly for UNIX. It details the evolution of C++ by Bjarne Stroustrup in the late 1970s, combining C's efficiency with object-oriented features from Simula67, leading to various standardized versions of C++ from 1998 to 2023. Key milestones and features introduced in each version are highlighted, showcasing the languages' development and enhancements over time.

Uploaded by

Khan Bangash
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/ 4

History of C and C++: A Comprehensive Story

1. Invention of C Language

The story of C begins in the early 1970s with Dennis Ritchie at Bell Labs (AT&T).
Ritchie developed C by improving upon the B language, which was a simplified
version of BCPL (Basic Combined Programming Language) created by Martin
Richards. B was used to write operating system code, but it lacked efficiency for
system-level programming.

C's Purpose:

C was invented for systems programming, particularly to develop the UNIX


operating system. It introduced key features such as low-level memory
manipulation (pointers), structured programming constructs, and a powerful set of
operators, which made it ideal for writing operating systems.

- Year : C was developed between 1969 and 1973.

- Key Features of C : Portability, efficiency, simplicity, and structured


programming.

2. Early Beginnings of C++

In the late 1970s, Bjarne Stroustrup , a Danish computer scientist working at Bell
Labs, found limitations in C for handling complex systems that required large
codebases and data abstractions.

While pursuing his Ph.D., Stroustrup was influenced by Simula67, a language


designed for simulation with object-oriented concepts such as classes and
inheritance. He appreciated the power of Simula's object-oriented features but
found the language inefficient (described at the end) for practical use in system
programming.

Stroustrup envisioned a language that could combine the efficiency of C with the
object-oriented capabilities of Simula, giving rise to what would become C++.
The goal was to enable better abstraction mechanisms while maintaining
backward compatibility with C.
- Key Motivation : Combining object-oriented programming (OOP) with C’s
speed and low-level manipulation capabilities.

3. Evolution of C++
Early Development (1979-1983)

- Year : In 1979, Stroustrup started working on "C with Classes," which


introduced class structures as a way to encapsulate data and functions. The first
version was essentially C with added features like classes and basic inheritance.

- 1983 : The name "C++" was officially coined, inspired by C's increment
operator `++`, reflecting the language's evolution as an enhanced version of C.
C++ retained C’s syntax while adding class-based programming , constructors ,
and destructors .

Key Concepts Introduced:

1. Classes : Blueprints for objects, encapsulating data and methods.

2. Encapsulation : Bundling data and functions into one unit.

3. Inheritance : Creating new classes from existing ones.

4. Polymorphism : Allowing one interface to control different types of objects.

The Versions and Their Evolution

1. C++ 98 (ISO/IEC 14882:1998) :

- First standardized version of C++.

- Introduced the Standard Template Library (STL), namespaces, and exceptions.

- Focus on generic programming through templates .

2. C++ 03 (ISO/IEC 14882:2003) :

- A bug-fix release for C++98. It included minor amendments but no new


features.

3. C++ 11 (ISO/IEC 14882:2011) :


- Major revision. Introduced auto keyword , lambda expressions , rvalue
references , move semantics , nullptr , and multithreading support .

- Focus on modern C++ features, improving the language’s ability to handle


resource management and parallel programming.

4. C++ 14 (ISO/IEC 14882:2014) :

- Incremental improvement over C++11. It polished the new features introduced


in C++11, like lambda expressions, and added generic lambdas and return type
deduction .

5. C++ 17 (ISO/IEC 14882:2017) :

- Introduced constexpr if , structured bindings, and more enhancements for


compile-time programming .

- Removed some old features while enhancing usability.

6. C++ 20 (ISO/IEC 14882:2020) :

- A significant update. Introduced concepts , coroutines , ranges , and modules.

- Expanded support for metaprogramming and coroutines , making the language


more expressive and powerful for modern computing.

7. C++ 23 (ISO/IEC 14882:2023) :

- Continued improvement of modules and concepts. More features to enhance


developer productivity and performance .

5. Summary of C++ Milestones:

- 1979 : Stroustrup begins work on "C with Classes."

- 1983 : Language is renamed to "C++."

- 1985 : First edition of The C++ Programming Language is published.

- 1998 : First standard of C++ (C++98).

- 2003 : C++03, minor bug fixes.


- 2011 : C++11, major update introducing modern C++ features.

- 2014 : C++14, incremental improvements.

- 2017 : C++17, major updates focusing on usability.

- 2020 : C++20, new features like concepts, ranges, and coroutines.

- 2023 : C++23, focusing on further improvements in modularity and

Summary of Simula 67’s Slowness:

 High-level abstractions like objects, classes, and inheritance added computational


overhead.
 Garbage collection introduced runtime delays due to the need for memory management.
 Interpreted execution meant slower performance compared to compiled languages.
 Lack of low-level control made it harder to optimize programs for specific hardware.
 Dynamic dispatch added extra steps in method invocation, slowing down execution.

You might also like