National Academy of Engineering Memorial Tribute for Dennis M. Ritchie (1941-2011)

From Memorial Tributes, National Academy of Engineering, Volume 20, published by the National Academies Press, 2016.

Dennis Ritchie was elected to the National Academy of Engineering in 1988. The citation reads

"For development of the 'C' programming language and for codevelopment of the UNIX operating system."

 

By Brian W. Kernighan

Dennis Ritchie, the creator of the C programming language, and the co-creator of the Unix operating system, died on October 12, 2011, at the age of 70.

Dennis was born in Bronxville, New York, on September 9, 1941. His father, Alistair E. Ritchie, worked for many years at Bell Laboratories in Murray Hill, New Jersey. The family moved to the nearby town of Summit when Dennis was quite young. He attended school there, then went to Harvard University for undergraduate and graduate degrees in physics and applied mathematics; his PhD thesis topic (1968) was subrecursive hierarchies of functions. Explaining his career path, he once said "My undergraduate experience convinced me that I was not smart enough to be a physicist, and that computers were quite neat. My graduate school experience convinced me that I was not smart enough to be an expert in the theory of algorithms and also that I liked procedural languages better than functional ones."

Dennis joined Bell Labs in 1967 as a member of technical staff in what soon became the Computing Science Research Center. For the first few years, he worked on the Multics project, a joint venture of MIT, General Electric, and Bell Labs that planned to build a large time-sharing computer utility. Multics proved too ambitious, and when it became clear that it would not live up to its goals in a timely fashion, Bell Labs withdrew from the project in 1969, leaving Dennis and his colleagues with experience in innovative operating system design, an appreciation of implementation in high-level languages, and a chance to start over with much more modest goals.

The result was the Unix operating system and the C programming language.

Unix had its origins with Thompson's early experiments in building an operating system on a small castoff computer; he was soon joined by Dennis, and the two of them created the first recognizable version in late 1969. In addition to the operating system itself, Dennis wrote a significant amount of supporting software, and documentation that made it possible for others to use the new system.

The C programming language dates from very early in the 1970s. It was based on Dennis's experience with high-level languages for Multics implementation, but much reduced in size because computers of the time had very limited capacity; there simply wasn't enough memory or processing power to support a complicated compiler for a complicated language. This enforced minimality accorded well with Ritchie and Thompson's preference for simple, uniform mechanisms. C was a good match as well for real computer hardware; it was clear how to translate it into good code that ran efficiently.

C made it possible to undertake something that had never been done successfully before: write an entire operating system in a high level language. By 1973, Unix had been converted from its original assembly-language form into C. This made it much easier to maintain and modify the system. It also enabled another giant step, moving the operating system from its original PDP-11 computer to other computers with different architectures. Because most of the system code was written in C, porting the system required not much more than porting the C compiler.

Dennis was a superb technical writer, with a spare elegant style, deft turns of phrase, and often with flashes of dry wit that accurately reflected his personality. His book The C Programming Language, co-authored with Brian Kernighan, was first published in 1978. Universally known as "K&R" after its authors, it is still a standard reference, and has been translated into more than two dozen languages. Dennis's original C reference manual formed the basis of the ANSI/ISO standard for C that was first produced in 1988. Without doubt, some of the success of C and Unix can be attributed to Dennis's skill in producing well-written explanatory documents.

With Thompson, Dennis received many honors and awards for his work on C and Unix, including the IEEE Emmanuel Piore Award (1982), the ACM Turing Award (1983), the ACM Software Systems Award (1983), the NEC C&C Foundation award (1989), the IEEE Richard W Hamming Medal (1997), the National Medal of Technology (1999), and the Japan Prize for Information and Communications (2011).

After successfully avoiding any management role for many years, Dennis finally yielded and became head of the Software Systems department at Bell Labs, where he was responsible for the group of researchers who were building the Plan 9 operating system, an attempt to reclaim the simplicity of the original Unix while unifying some of its disparate mechanisms. Dennis stepped down from management and retired officially in 2007, but continued to come to Bell Labs every day until his death.

Dennis was modest, kind, unassuming and generous, always giving credit to others while downplaying his own contributions. A typical example is found in the acknowledgement section of his 1996 retrospective on the evolution of Unix: "The reader will not, on the average, go far wrong if he reads each occurrence of `we' with unclear antecedent as `Thompson, with some assistance from me.'" Dennis was a giant of computing. Most of the world's computers run Unix or Unix-like systems, and much of the world's software is written in C or in languages derived from it. He is greatly missed.

Dennis is survived by his sister Lynn, his brothers John and Bill, and their families.