Creator of C

C series for 1st sem students: Creator of C

Posted on Posted in Blogs, Technology

Today is 9th September, the birth anniversary of the creator of C programming language, one of the creators of Unix operating system and one of the forefathers of high level programming languages, Dennis MacAlistair Ritchie. As we are currently doing a series on C, let us talk about his influence in Computer Science.

Dennis Ritchie was born on 9 September, 1941 in Bronxville, New York. He graduated from Harvard University with degrees in physics and applied mathematics. At that time computer programming was not a degree, but he was fascinated by computers and was especially interested in how they were programmed.

In 1967, Ritchie began working at the Bell Labs Computing Sciences Research Center where he met Ken Thompson and Brian Kernighan, two key colleagues in his works, among other great minds of that time. Bell Labs at that time was owned by AT&T, which had monopoly over telecommunication. So Bell Labs had no shortage of funding, thus enabling Ritchie and company to carry out their development works.

A Teletype Model 33 ASR teleprinter. Image from wikipedia.

In those days, big corporations owned computers, which were known as mainframes, which were huge in size (typically the size of an entire room) and relatively powerful. Their full potential was utilized by time-sharing them among multiple users in the corporation. Each user had a I/O device called terminal which was a device like a Teleprinter, to communicate with the mainframe. This name terminal is still used for the user-interface used to interact directly with the OS using system commands (the command prompt in windows).

Meanwhile portable computers were being developed which required an operating system. Early in his career, Ritchie began developing operating systems for portable mini computers. During the 1960s, Ritchie and Ken Thompson worked on the Multics operating system at Bell Labs. However, Bell Labs pulled out of the project in 1969. So, with Ken Thompson, he began developing an operating system for mini computers which could support different hardware from different manufacturers and would be free of the drawbacks of Multics. They named it Unix (originally Unics), as a pun on Multics, suggested by Brian Kernighan.

At that time most of the software(including OS) were written in Assembly language, which was different for computers with different hardware. Ken wanted Unix to work on all computers, so he wanted to write the OS in a high level language. He developed the B language, modifying the then available high level language BCPL. Ritchie made tremendous improvements to this language to develop what came to be known as C. They then re-implemented Unix entirely in C.

Brian Kernighan was also involved in the development of C, and later wrote a manual on this language, with Ritchie which became the famous book The C Programming Language. This book was central to the development and popularization of the C programming language and is still widely read and used today.

The C language, by design, provides constructs that map efficiently to typical machine instructions(binary codes) and thus replaced Assembly language in many software applications, including operating systems and embeded systems. This was the main reason for its huge success compared to other high level languages of that time and so it is still widely used in these fields today. C was also a key influence in the development of many of the later high level programming languages, where, more often than not, features were added to those already existing in C. Its immediate successor is called C++ (++ is the increment operator in C), where object oriented programming concepts were added to the existing C constructs.

Similarly, Unix had been very influential in operating systems development. The Linux and MacOS are directly based on Unix, and Android which is a linux based mobile operating system, is thus derived from Unix. Most of the web servers are running on Linux too.

Thus we can conclude that most of the software we use in this modern era can be directly traced back to the works of Dennis Ritchie. We are more familiar with businessmen like Steve Jobs, Bill Gates and Mark Zuckerberg, but as developers we should pay homage to the great minds like Dennis Ritchie, who made all of this possible.

Brian Kernighan sometimes features in a youtube channel called computerphile, where he had talked about his days working at bell labs. AT&T also have released archived videos in youtube where you can watch interviews of Dennis Ritchie.

If you liked this article please comment and show your support and interest so that I’ll be motivated to continue this effort. Like our facebook page if you haven’t already. And if you have any questions please comment. I’ll try to reply all.