From a previous preprint titled "Claude’s Cycle", dated 2026-02-28 [2]:
It seems that I’ll have to revise my opinions about “generative AI” one of these days. What a joy it is to learn not only that my conjecture has a nice solution but also to celebrate this dramatic advance in automatic deduction and creative problem solving. I’ll try to tell the story briefly in this note.
I am not a believer, but pray that whichever $DEITY is watching over Donald Knuth allows him a healthy and long life to reach the achievement of finishing volume 7.
The way I see it: Volume 7 is compilation. Since many optimization techniques are NP-complete, Knuth will have to take a break from writing TAOCP to settle whether or not P=NP.
After years of dipping into random chapters for reference I read through the first 2.5 volumes sequentially until life got too busy. I plan on gifting the current full set to myself this xmas- but even if you just dip into it like a coffee table book it’s a wonderful read that breaks up tough sections with humor.
For a fun joke, check the index entry for "Royalties, use of" --- it points to a graph which is evocative of the layout of the pipe organ in his home which was funded by TAoCP book sales.
Receiving one of Don's cheques ("Bank of San Serif" ;-) a few months after pointing out an error has been many a computer scientist's career highlight!
I'm sure most of it is above my head, but I purchased the entire set in a mispricing for approximately ~$40 some time ago, and I'm really happy to have it in my library.
Also: "Please do not tell me about errors that you find in an eBook, whether it's PDF or not, unless the same errors are present in a printed copy; such mistakes should be reported directly to the publisher."
Glad he thought to mention this, but I suspect his inbox will still be inundated.
E-mails which are sent in about the various books used to be printed out and responded to --- I got a $2.88 physical reward check for finding an error and a point of improvement in _Digital Typography_. Not sure how they are handled now. Trying to find an error or point of improvement in v4f7 so that I can get an account at:
(usually, I do find errors in books, esp. e-books, which reminds me, I need to pick up the corrected 3rd printing of _The Fall of Arthur_ by J.R.R. Tolkien before I read it again, since that should have the error I found corrected).
> And after Volumes 1--5 are done, God willing, I plan to publish Volume 6 (the theory of context-free languages) and Volume 7 (Compiler techniques), but only if the things I want to say about those topics are still relevant and still haven't been said. Volumes 1--5 represent the central core of computer programming for sequential machines; the subjects of Volumes 6 and 7 are important but more specialized.
I agree with that opinion. He started writing TAOCP in 1968, and could have switched to Pascal in 1972.
Pascal is simple and clear, and can be translated easily to anything from LISP, Fortran, Python to C or C++ (in fact,
subsets of Pascal are often used as sample language in books
about compilers, including in Pascal inventor N. Wirth's own compiler book (which, unlike Knuth's, was completed timely):
It does not matter that Pascal is not much in use anymore, because due to its readability, it's timeless. It nearly reads like English prose, yet is automatically executable. It has also been standardized, and there is a book-sized language description available, as are several -- commercial and open source -- implementations.
In contrast, his pseudo-assembler is arcane. Whenever I wanted to implement an algorithm following Knuth TACOP, I had to work off his English pseudo-code description rather than the associated pseudo-assembler code.
There are M/MIX assemblers and interpreters you can download and run - in some ways they're better than "real" programming languages because they're explicitly for instruction so usability concerns like package managers and build automation support don't get in "the way" of operating them.
consider the alternatives. it could have been written in PL-1 and rapidly become dated. or it could have been written in a slightly higher level custom language and that would also have to be taught and would be less clear about what was going on under the hood. or a kind of pseudo-code that would also admit ambiguity. or it could have been rewritten in pascal, and then java, and then javascript and then rust.
given the timespan and the focus on complete analysis of running times and not just asymptotics, in the end maybe it wasn't so terrible a choice.
Well, even as-is, it turns out that the kind of assembly language that Knuth originally wrote it in itself had a very short lifespan. MIX assumes a single accumulator register for arithmetic, which hasn't been a common processor architecture since around the 1980s. MMIX is redesigned to be more RISC, but it also uses a dynamic register window concept (which itself I think was only used on Itanium, and we all know how that architecture went down).
And unfortunately, for a lot of modern algorithms, you're going to have dive into SIMD-like algorithms, something MMIX doesn't have. Also, a lot of modern processors have a decent suite of bitwise operations (e.g., count leading/trailing zeros/ones, popcount) that is also missing from MMIX.
The programming languages that are in favor may change from decade to decade, but so to does most of the assembly language techniques.
From a previous preprint titled "Claude’s Cycle", dated 2026-02-28 [2]:
[1] https://www-cs-faculty.stanford.edu/~knuth/papers/fillomino-...[2] https://www-cs-faculty.stanford.edu/~knuth/papers/claude-cyc...
Very interesting that he seems to be in the camp of “It’s ok if the machines prove it as long as we can understand and formally verify it after.”
Also: "Please do not tell me about errors that you find in an eBook, whether it's PDF or not, unless the same errors are present in a printed copy; such mistakes should be reported directly to the publisher."
Glad he thought to mention this, but I suspect his inbox will still be inundated.
https://www-cs-faculty.stanford.edu/~knuth/email.html
In any case, someone beyond the publisher will still get inundated with corrections about the PDFs and likely will demand their reward for it.
https://www-cs-faculty.stanford.edu/~knuth/boss.html
(usually, I do find errors in books, esp. e-books, which reminds me, I need to pick up the corrected 3rd printing of _The Fall of Arthur_ by J.R.R. Tolkien before I read it again, since that should have the error I found corrected).
[0]: https://www.americanscientist.org/article/100-or-so-books-th...
> And after Volumes 1--5 are done, God willing, I plan to publish Volume 6 (the theory of context-free languages) and Volume 7 (Compiler techniques), but only if the things I want to say about those topics are still relevant and still haven't been said. Volumes 1--5 represent the central core of computer programming for sequential machines; the subjects of Volumes 6 and 7 are important but more specialized.
Now, half a century later, he is chickening out...
> Syntactic Algorithms, in preparation.
9. Lexical scanning (includes also string search and data compression)
10. Parsing techniques
Pascal is simple and clear, and can be translated easily to anything from LISP, Fortran, Python to C or C++ (in fact, subsets of Pascal are often used as sample language in books about compilers, including in Pascal inventor N. Wirth's own compiler book (which, unlike Knuth's, was completed timely):
Wirth, Niklaus, Compilers (1996), 101pp., 2rd revision, 2017, online: https://people.inf.ethz.ch/wirth/CompilerConstruction/Compil..., last accessed 2026-07-07).
It does not matter that Pascal is not much in use anymore, because due to its readability, it's timeless. It nearly reads like English prose, yet is automatically executable. It has also been standardized, and there is a book-sized language description available, as are several -- commercial and open source -- implementations.
In contrast, his pseudo-assembler is arcane. Whenever I wanted to implement an algorithm following Knuth TACOP, I had to work off his English pseudo-code description rather than the associated pseudo-assembler code.
given the timespan and the focus on complete analysis of running times and not just asymptotics, in the end maybe it wasn't so terrible a choice.
And unfortunately, for a lot of modern algorithms, you're going to have dive into SIMD-like algorithms, something MMIX doesn't have. Also, a lot of modern processors have a decent suite of bitwise operations (e.g., count leading/trailing zeros/ones, popcount) that is also missing from MMIX.
The programming languages that are in favor may change from decade to decade, but so to does most of the assembly language techniques.
They were all the rage for a while, because they make procedure calls fast but turn out to have subtle issues in highly-multithreaded scenarios.
Obviously I know I can probably find them on the high seas.
> The authorized PDF versions can be purchased at www.informit.com/taocp