The History of C

May 14, 2020 0 By Rosa

I think you can ask any developer what C is and they’ll be able to answer you. C goes back a long time and has been around for a couple decades. Many of our current programming languages are based on C as well! Java, C#, C++, Perl; they are all derived from the C programming language. But surely, C must have a history of its own, right?! Indeed, it does! Let me take you on a little journey through history and find out where C comes from.

We’re travelling back to the late 60s, where computers were still these massive machines. Ken Thompson was working at Bell Laboratories at the time. In 1969, he finished writing the original version of UNIX, a new operating system for computers. Essentially, you can say that UNIX is like Windows. This initial version of UNIX ran on the DEC PDP-7 computer.

PDP-7 - Wikipedia
The DEC PDP-7

The DEC PDP-7 is a very early “minicomputer”. It was still massive, but much smaller than most computers at the time. This system had a whopping 8k words of main memory, which is the same as 16 kilobytes of RAM. Nowadays, most machines run with 16 gigabytes of RAM, that is literally a million times more memory!

The very first version of UNIX was written in assembly. For those who don’t know, assembly is also known as the human-readable machine code. However, it is still challenging to read nonetheless. That made debugging and further developing the system pretty difficult. Therefore, Thompson decided that UNIX needed a higher-level programming language to continue the development of the operating system. So, he designed a small language which he called B.

One year later, in 1970, Dennis Ritchie joined the UNIX project. To help with the further development of this project, Bell Laboratories obtained the newer DEC PDP-11. Thompson was rewriting part of UNIX in B during this time, while Ritchie was writing programs in B. However, a couple months into the project, they came to the conclusion that B wasn’t really suited for the PDP-11 computer. Ritchie took it upon himself to extend the B language so it could support the computer. Initially, he called this extended language NB for “New B”. As NB started to diverge more from the B language, Ritchie changed the name to C. After a couple year, the language became stable enough to rewrite UNIX in the C language in 1973.

This event marked the start of a snowball effect for the C programming language It had an exceptional evolutionary boom between 1977 and 1979. In this period, the first book appeared as well: The C Programming Language by Brian Kernighan and Dennis Ritchie. This book became the bible for all C programmers. Whenever you see someone refer to K&R or the “White Book”, they are talking about this book. Since it was the first book on C programming and there was not yet a standard established for C, K&R served as the new de facto standard for C programming.

IBM Personal Computer - Wikipedia
The IBM PC from 1980

Aside from the evolution of the language, a great many C compilers were written for a variety of machines. All these machines ran different operating systems at the time. However, thanks to the compilers, they were still able to run C programs. That also meant that C was expanding its reach beyond the Bell Laboratories machines. C became a popular language, especially for the IBM PC platforms.

The demand for C increased a lot due to its popularity. However, that popularity proved to have its cons as well. C was far from standardised at this point. New features have been added since the release of K&R, so no one really knew what C was capable of. Therefore, people started to develop a standard for C under the watchful eye of the American National Standards Institute (ANSI). Many revisions later, they managed to get the approval for the new C standard in 1989. This standard became known as C89, so it was clear that this version is different from the K&R version. A couple years later, new big changes came to the C language. So, they created a new standard for C and got it approved in 1999. This version of C is called C99.

C has gone through its fair share of development and has rightfully obtained a prominent spot in computer history. To this day, C is still being used to write all sorts of programs. I think we’ll C it around for quite some time!