Picture of author.

About the Author

Donald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the TEX and METAFONT systems for computer typesetting, and for his prolific and influential writing. Professor Emeritus of The Art of Computer Programming at Stanford show more University, he currently devotes full time to the completion of these fascicles and the seven volumes to which they belong. show less
Image credit: David Monniaux

Series

Works by Donald E. Knuth

Concrete Mathematics: A Foundation for Computer Science (1989) — Author — 924 copies, 2 reviews
The TeXbook (1986) 562 copies, 3 reviews
Surreal Numbers (1974) 337 copies, 7 reviews
Literate Programming (1992) — Author — 218 copies, 3 reviews
3:16 Bible Texts Illuminated (1991) 178 copies, 3 reviews
The Metafont Book (Computers & Typesetting) (1986) 163 copies, 1 review
Digital Typography (1999) 150 copies, 1 review
Selected Papers on Computer Science (1996) 142 copies, 2 reviews
Selected Papers on Fun and Games (2011) 71 copies, 1 review
The art of computer programming (1987) 45 copies, 2 reviews
Axioms and Hulls (1992) 12 copies
The Essential Knuth (2013) 10 copies
Algorithmes (2011) 3 copies
Bible 3 : 16 (2017) 1 copy
MIX 1 copy
Knuth par Knuth (2020) 1 copy

Tagged

Common Knowledge

Members

Reviews

59 reviews
If you program and you don't know this book, and its companion volumes 2 and 3, it's like saying you live in San Francisco and haven't seen the Golden Gate Bridge. The books are really much more valuable to someone with a knowledge of calculus, and some discrete mathematics. If you are looking for programming cookbooks, don't go here, but if you want to know why binary trees, stacks and queues are used, and who thought of their use first, and their history of development, then read these show more books.

The above is, of course, a gross simplification. You will also learn how to properly analyze an algorithm - how to design algorithms to compute arithmetic results to achieve the minimum amount of error, how to design a proper random number generator - how to choose the right datastructure for search operations, etc.. More to the point, you will gain the skills to answer such questions on your own.

And most of all, you will see, once again, that the very brightest people are humble and have a sense of humor. The places where this book made me laugh out loud are too numerous to count.
show less
Like any of Donald Knuth’s books, this work constitutes a classic of computer science. Knuth attempts to integrate the art of writing good literature with the art of writing computer code. Using a series of papers and articles published between 1974 and 1989, he illustrates the historical genesis of writing more understandable code. Although modern programmers will find many constructs to be dated, the historical and conceptual value of these writings cannot be underestimated. Without such show more understanding of the past, modern programmers will merely spin their wheels in older problems instead of inventing the future.

This work starts out with an old debate (1970s) on the “goto” statement’s use. The conclusion Knuth reaches is the conclusion the rest of the community ended up maintaining – that the goto statement obscures rather than clarifies readable code. It’s interesting to see, even if just at a scanning glance, how ideas come together in one context and inspire further conversation in later contexts (i.e., the rest of the book). This introduction, though lengthy, climaxes in an important question: What exactly is readable code?

The author develops a system called WEB to address this problem. WEB combines markup text in the TEX markup language with Pascal code. As such, each approach is described twice in code, once in human language and another in computer language. This provides obvious benefit to programmers seeking to maintain code – a challenge far more difficult in today’s context thirty years hence. Although present-day languages are different, many approaches still use the basic kernel of this book’s ideas by combining coding and documentation (e.g., JavaDoc and PHPDoc). These are more than comments; they are systematic documentation for a pre-processor to parse and produce compiled, printable literature.

Obviously, this work is a historical gem to those interested in the history of computing. Advanced programmers and those interested in the theoretical and historical underpinnings of modern technologies will be most interested. Even those working with programmers might find some benefit. Studying the thought processes behind innovation is a helpful process for speeding modern development. This is a really good case study in such approaches over 16 years of written conversations.

Beginning and even intermediate programmers may not be interested in this work as much as I am. However, such programmers should still familiarize themselves with the author’s name Donald Knuth. He is perhaps the greatest founder of computer programming. At the time of my writing (2021), he is still alive. He helped with several advances, including the LaTEX markup language, which is partially described in this book. Literate Programming is often described as a fourth work added to Knuth’s trilogy (his magnum opus) on computer algorithms. It’s always fun and beneficial for me to wrestle with good minds; this book provides plenty of fodder for that.
show less
At one point, I wrote C++ code using CWEB. The experience (which I found rather positive) convinced me that almost no other developer I knew would find it positive. (The approach of writing discursive text and code in parallel, although highly conducive to good code, is also extremely demanding.)

This collection of papers, centred on WEB and on related issues -- the article on "The Errors of TeX" should be required reading in any CS course of study -- remains both enlightening and relevant show more thirty-plus years on, although the overall approaches of most software practitioners (IDEs, automated refactoring tools, etc.) make the application of the disciplines described less likely than ever. show less
This latest volume has the cloth cover and sewn binding of the other volumes, which is nice in this day and age of shoddy bookmaking workmanship. A few pages in my copy seem to have gotten too much ink, but I guess that's the price you pay to have a book printed using real ink rather than toner.

The "Mathematical Preliminaries Redux" section talks about countable probability spaces but then talks about nontrivial random processes (of infinite length) that are apparently supported on such show more spaces. In the standard formulation, such a process would be a function with an uncountable range but a countable domain, which I find puzzling. I passed my concerns on to Dr. Knuth, but I wasn't able to convince him that there was an issue. It was an honor to get a hand-written reply from an icon anyway.

At the time of this book's release, Dr. Knuth is 84 and has plans for writing Volumes 5, 6, and 7. May it be!
show less

Lists

Awards

You May Also Like

Associated Authors

Statistics

Works
80
Members
9,645
Popularity
#2,480
Rating
½ 4.3
Reviews
53
ISBNs
165
Languages
11
Favorited
29

Charts & Graphs