Notes Home

Dr. Niall McMahon
Lecture Notes
Table of Contents

History of C

CA644, System Software

Dr. Niall McMahon


If you print these slides, think about using two pages per sheet although don't worry too much about it!


Dr. Niall McMahon
Drawn from C++, How to Program by Deitel and Deitel and other sources. See History of Computing Links and History, Part 1.
Autumn 2022.

BCPL and B

  • BCPL developed by Martin Richards for writing OS software and compilers.
  • B developed by Ken Thompson using ideas from BCPL.
  • B used to create early versions of UNIX.
  • Bell Labs in 1970 on a DEC PDP-7.
  • BCPL and B were type-less. Every item of data occupied one word in memory.
  • Programmer had to decide how to handle an item in memory.


  • C evolved by Dennis Ritchie at Bell.
  • Implemented on a DEC PDP-11 in 1972.
  • C draws on BCPL and B and adds typing.
  • Used as UNIX development language.
  • All OSes written in C/C++.
  • C is hardware independent and code is portable.

Mainstream C

  • By late 70s, C well established.
  • The C Programming Language by Kernighan and Ritchie.
  • Brought C to widespread attention.
  • One of the most successful computer books.

Standardising C

  • Many variations due to different hardware platforms.
  • Similar but incompatible.
  • Standard version of C needed.
  • ANSI and ISO in late 80s.
  • ANSI/ISO 9899.

Next Generation Languages

  • Then C++.
  • Object oriented etc.
  • Smalltalk Xerox PARC.
  • C remains a system software and OS development mainstay.

Modern OS: Fuschia

Languages used in Fuchsia development.

  • C/C++
  • Dart
  • FIDL
  • Go
  • Python
  • Rust