- Forward


A Brief History of C/C++


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Some "Ancient" History
Back SMYC Forward
  • 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.)
Back SMYC Forward
  • 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.)
Back SMYC Forward
  • 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
Back SMYC Forward
  • 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
Back -