Preface to the Digital Edition of Kernighan and Ritchie's The C Programming Language
The second edition of The C Programming Language was published early in 1988. At that time, the first C standard was almost complete, formalizing and codifying the precise definition of the language. There have been two revisions to the standard since then, in 1999 and 2011, that added a number of language features and cleared up a few minor issues. But for many programmers, the 1988 definition of C covers the parts of the language that they use, so it has never seemed necessary to update the book itself to track the newer standards. Thus, the digital version is intentionally identical to the print edition.*
On the other hand, the computing world is very different from what it was in 1988. The Internet has gone from a network primarily for researchers at universities to a universal network linking everyone on the planet. Computers have continued to get smaller, cheaper, and faster; a typical laptop or cell phone today has more computing power than a supercomputer of 1988, yet costs so little that probably half the people in the world have one. Languages such as C++, Objective-C, Java, and JavaScript make it easier to program these systems as well; all of them borrow heavily from C.
Remarkably, in spite of all of this change, C retains a central position. It is still the core language for operating system implementation and tool building. It remains unequaled for portability, efficiency, and ability to get close to the hardware when necessary. C has sometimes been called a high-level assembler, and this is not a bad characterization of how well it spans the range from intricate data structure and control flow to the lowest level of external devices.
Sadly, Dennis Ritchie, the creator of C and the coauthor of this book, died in October 2011 at the age of 70 and never saw this digital edition. Dennis was a great language designer and programmer, and a superb writer, but he was also funny, warm, and exceptionally kind. We are all in his debt. He will be greatly missed.
Brian Kernighan
Princeton, New Jersey
November 2012
* Note: Example code can now be downloaded by visiting www.informit.com/store/c-programming-language-9780131103627.