Today is Donald Knuth’s 86th birthday. If you stop by Stanford University, where he’s professor emeritus, you might even see him around. I don’t know whether he’s still active there, but he probably is — but he spends most of his time working at home on his huge writing project.
Knuth is the author of The Art of Computer Programming, which he started in 1962, envisioning it as a single book. It grew pretty quickly, and the first three volumes were published in 1968, 1969, and 1973. At that point he expected it to grow to 7 volumes. Then Volume 4 became Volumes 4A and 4B. Volumes 4C and 4D are still planned, as are Volumes 5 through 7. The published work so far amounts to nearly 4,000 pages of pretty dense reading, and if you make it through, you’ll have a very good understanding of everything from how floating-point arithmetic is done in a digital computer to polynomials, sorting, and hashing. You’ll have a great introduction to combinatorial algorithms, but not everything — volumes 4C and 4D will represent the conclusion of the combinatorial algorithm treatment begun in 4A and 4B.
Knuth won the Turing Award in 1974; it’s the computer science equivalent of the Nobel Prize. And he’s very concerned with the layout and design of his books and papers — in fact, he wrote the TeX typesetting system because he wasn’t satisfied with the way mathematical equations were being printed at the time. Then he noticed that the fonts weren’t quite right either, so he wrote METAFONT, a font definition language (like Postscript, but years earlier), and designed a whole family of typefaces (the Computer Modern faces).
When he began writing The Art of Computer Programming he needed a computer system generalized enough to use in the book, so (as one does) he designed one himself. It’s called MIX. It’s a hypothetical system, but there are several working implementations. MIX was based on the complex instruction set design approach for chips that was the standard of the time, but when reduced instruction set designs became prevalent later, Knuth designed MMIX, an updated RISC version that’s for the current and future volumes of the books commonly called TAOCP.
One of Knuth’s real gifts is the ability to explain extremely complex ideas (like the ones in TAOCP) clearly enough for anyone to follow, and he believes that computer programs should be clear and easily followed as well. He calls his approach literate programming, and describes it this way: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. He developed the WEB system that embodies literate programming. The basic idea is that the programming code and a readable (in English) description of the program are “woven together.”
Knuth is also famous for his sense of humor. In the first volume of TAOCP he demonstrates recursion with two index entries: “circular definition” and “definition, circular.” The entries point to each other. He also contributes to books and journals about recreational math, has created language puzzles for the Journal of Recreational Linguistics, and at least back when I lived in the area, gave public talks on various computing-related topics (you can find many of these online, and he still speaks occasionally — most recently last Saturday in San Francisco). If that’s not enough, he wrote the novel Surreal Numbers, is (or at least was) the organist for his church, and composes original organ music. And just in case you’re not yet feeling like an underachiever, he’s also won the Grace Hopper Award, the National Medal of Science, the John von Neumann Medal, the Kyoto Prize, and quite a long list of other accolades.
You can find out a great deal more on his personal web page, which includes both frequently-asked and infrequently-asked questions (but not necessarily the answers).