Return to Timeline of the History of Computers
C Programming Language
Dennis Ritchie (1941–2011) and Brian Kernighan
When a program runs on a computer, the computer’s CPU executes a sequence of low-level machine instructions that invoke operations such as fetching data from memory, adding numbers together, and storing the result back into memory. Humans write in high-level languages that are translated into machine code by special-purpose programs called compilers. This translation lets programmers create programs that are vastly more complex and powerful than if they had to write directly in machine code, or in assembly language, which was trivially translated into machine code.
Created at Bell Laboratories by Dennis Ritchie, C was designed for writing operating systems. Key aspects of the language include the ability to precisely control the layout of data in the computer’s memory and to intermix high-level instructions and machine code, and the fact that C runs faster than other high-level languages.
Still widely used today, C also lets programmers write at a high level of abstraction. The language comes with a library of built-in functions that implement complex behaviors, such as reading and writing data files, and performing advanced mathematical operations. What’s more, programmers can create their own functions and use them as if they were built-in functions, making it easy for even beginning programmers to extend the language. As C gained popularity, programmers started to share their libraries, naturally creating an open-source culture.
The original UNIX operating system was written in assembly language for an old Digital Equipment Corporation PDP-7 computer and then rewritten into the assembly language for the PDP-11. In 1973, Version 2 of UNIX was rewritten into C, making it the third operating system ever to be written in a high-level language. Rewriting it in C made UNIX much easier to maintain and extend.
Today C is one of the most popular computer languages in the world. It’s also inspired many other languages, including C++, C#, Java, PHP, Perl, and others.
SEE ALSO UNIX (1969)
This fragment of source code, containing a comment and a complex instruction, appeared in the UNIX operating system kernel. The instruction suspends one program and starts another.