A Brief History of C/C++
Prof. David Bernstein
James Madison University
Computer Science Department
bernstdh@jmu.edu
Some "Ancient" History
Mid 1960s:
Martin Richards developed the typeless language BCPL (Basic Combined Progamming Language) as a simplification of CPL
Late 1960s and early 1970s:
Ken Thompson developed the typeless language B (based on BCPL)
B was used to develop the early versions of the UNIX operating system on the DEC PDP-7
1971:
Dennis Ritchie began to extend B (most notably, adding a character type)
He called the extended language NB (for "new B" and, perhaps, the Latin
nota bene
)
Some "Ancient" History (cont.)
Early 1970s:
Dennis Ritchie started working on a language called C with more types and with type composition (similar to that in Algol)
The name is either a progression through the alphabet or through the letters in BCPL (Ritchie himself won't say)
C was used to write the UNIX kernel for the PDP-11
1977-1978:
C underwent extensive modifications
The book
The C Programming Language
was written by Brian Kernighan and Dennis Ritchie
1983:
ANSI began the process of standardizing C
The standard was accepted by ISO in 1990 and is known as either C89 (when it was completed) or C90 (when it was ratified)
Some "Ancient" History (cont.)
1980:
Bjarne Stroustrup begain working on what he called "C-with-classes"
He wanted to add the facilities for object-oriented programming contained in the SIMULA programming language to C
1983:
The language was re-designed and re-named C++
Originally, C++ source code had to be "pre-compiled" (the pre-compiler converted C++ constructs to plain C)
Mid to Late 1980s:
The first commercial version of C++ was released in 1985
In 1989 ISO began the standardization process (completed in 1998)
Some "Less Ancient" History
More Recent C Standards:
C99 (1999)
C11 (2011)
Some Other Descendants:
Concurrent C (1989)
Objective-C (1991)
C* (1990)
Security-Oriented Descendants:
Rust (2010)
Checked C (2016)
More Recent C++ Standards:
C++11 (2011)
There's Always More to Learn