Earlier quoted context omitted.
There’s no second Don Knuth vOv
Brandon Sanderson maybe?
The Art of Computer Programming by Donald E. Knuth
51–60 of 64 posts
Re: The Art of Computer Programming by Donald E. Knuth
#52The valuable prose aside, I never liked that code examples were in a pseudo assembly language.
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): Wirth, Niklaus,…
So no, it’s not a blunder by DEK to avoid abstracting the complexity into higher-level languages, nor to have not written it as a handbook. TAoCP is not a handbook-like book, it is well beyond that. There are plenty of books for that. For that purposes, you might consider consulting CLRS or Skiena instead.
Re: The Art of Computer Programming by Donald E. Knuth
#53Earlier quoted context omitted.
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…
MMIX uses register windows to make stack frame pointer offsets unnecessary when referring to PUSHed arguments. Don is trying to make the algorithms understandable and correct, and by hiding some details that are handled efficiently by compilers (keeping track of FP and offsets), it benefits the human reader. Don's first computer was the IBM 650 https://en.wikipedia.org/wiki/IBM_650?useskin=vector see also http://ed-t…
(There's another criticism to level at pseudo-assembly language, which is that modern high-performance processors are superscalar with cache hierarchies, which makes the analysis of execution time itself difficult from the kind of first principles that Knuth is working at. I can appreciate why Knuth is working differently from the more traditional big-O notation of typical algorithms classes, but it does need to be acknowledged that it does sap the treatise of its supposedly timeless quality.)
Re: The Art of Computer Programming by Donald E. Knuth
#54I 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.
What he needs to do is start sketching the rest so that it can be finished after his death in his vision.
Re: The Art of Computer Programming by Donald E. Knuth
#55After 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.
Re: The Art of Computer Programming by Donald E. Knuth
#56Earlier quoted context omitted.
MMIX uses register windows to make stack frame pointer offsets unnecessary when referring to PUSHed arguments. Don is trying to make the algorithms understandable and correct, and by hiding some details that are handled efficiently by compilers (keeping track of FP and offsets), it benefits the human reader. Don's first computer was the IBM 650 https://en.wikipedia.org/wiki/IBM_650?useskin=vector see also http://ed-t…
I mean, a virtual ISA (think PTX, LLVM IR, WASM) is going to do a better job of giving you an abstract machine than something like MMIX. Virtual registers and call arguments/return values as nary arguments rather than fixed registers give you most of what you want, and it's easy to augment it with a large slice of primitive operations that is a superset rather than subset of assembly languages. (There's another criti…
I think, tho, the fundamental reason is: he specs the machine. It does exactly what he says it does. No edge cases, no surprising behavior that LLVM IR or WASM might have; also, I'm sure he spec'd it to make the algorithms he implements elegant or at least more understandable.
I suspect part our views comes from the purity of Mathematics (Knuth) and the actuality of Computer Science. I'm even sympathetic to your view, because then we could verbatim copy Knuth's algos to WASM etc and run them, and we get a twofer: a deeper understanding of the algo AND a deeper understanding of the underlying V-ISA (PTX, BEAM, WASM, LLVM IR, etc).
I think the learning / understanding of the algos Knuth presents partially comes from us Playing Computer, and manually going through the code. It's that pedagogy comes first, I think.
Next time I run into Don, I'll ask him about this. 'cause you're also correct about L1...Ln caches affecting performance drastically.
(And, yes, I had wondered why Don did MMIX he didn't create a "RISC-V" before there was a RISC-V; that is, why didn't he create the Next Great RISC Machine? He said he talked with John Hennessy and Richard Sites. This was in 1990.)
Here's HN on RISC-V vs MMIX: https://news.ycombinator.com/item?id=14635361
Re: The Art of Computer Programming by Donald E. Knuth
#57Re: The Art of Computer Programming by Donald E. Knuth
#58Re: The Art of Computer Programming by Donald E. Knuth
#59About $340 for the full set of eBooks. 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.
He doesn't have an inbox: https://www-cs-faculty.stanford.edu/~knuth/email.html
Amusingly in my first job in the 90s they still assigned each desk a labeled inbox and an outbox (two trays on the desk), but by then it was all email already so nobody ever used those on my desk. But they sat there for a few years as a memento to the 80s!
Re: The Art of Computer Programming by Donald E. Knuth
#6035000 Rs for these books?????????????? are you serious? you could buy groceries for 6 months on that price
Educational books are an investment in the future, and some (like Euclid's Elements) don't ever lose their relevance.