Full description not available
A**R
Quick delivery.
The order was sent promptly and the package is in good condition.
A**R
Finally
It sure took long enough for this book to come out. I started reading the art of computer programming a few years ago, and though I enjoyed the MIX language, the fact that Knuth talked frequently about how out of date MIX was made me always second guess myself and I eventually just gave up to wait for the MMIX supplement to be done. Thankfully that time is finally here.I have just started over The Art of Computer Programming with this new supplement in hand. Though I haven't gotten far, it certainly hasn't let me down yet. The little introductory section on programming style and techniques was also very good. And, as we have come to expect in this series, the book is beautifully bound and typeset.I'm still patiently waiting for the 2020's final addition of this wonderful series, but this work should hold me over and give me a lot of stuff to read and work on.
C**G
Five Stars
As advertised.
M**A
Great execution of an offbeat idea
Full disclosure: I received a free copy of this book from the publisher in exchange for reviewing it.I have owned volumes 1–3 of TAOCP since 1999. I spent weeks with them while trying to write my PhD thesis on Shellsort. I admire their scope, appreciate the precision, and enjoy the humor, but I have never found a good use for the snippets of MIX assembly code. MIX is just too different from the environment I work in, for example: Knuth’s implementation of Shellsort is self-modifying.Around 2000, Knuth designed the successor to MIX, an imaginary 64-bit RISC computer MMIX, and asked volunteers to rewrite the programs from TAOCP 1–3. The result is “The MMIX Supplement…” by Martin Ruckert. Alone, the book makes little sense, you should read it side by side with TAOCP. Be wary that it does not teach the MMIX assembly language. Look for its descriptions online or in the MMIX fascicle by Knuth.The book starts with a brief introduction to the coding style and programming techniques used in it. This is followed by the main part, which are updates to TAOCP. A typical section consists of an anchoring sentence or two taken from TAOCP, comments about the mapping of variables to registers, a piece of MMIX code ranging from a couple of lines to 290 lines (an elevator simulator), and a formula for its running time. Longer expositions cover input and output, threads and semaphores, and representing linked data structures in memory. There are also updates to the exercises and their answers.The precision of the prose reminds me of Knuth himself. The implementations of the algorithms are thoroughly tested. They shave off every possible cycle of the MMIX processor, even outside loops. For instance, the solution to the first exercise, “The Date of Easter Sunday” begins with allocating a global register for the constant 970881267037344822 = 2^{64}/19+2/19, which allows us to compute year mod 19 with a MULU; GET; MUL; SUB sequence, 2.77 times faster than DIVU; GET. Another example of optimization is tagging pointers in their low-order bits, helpfully ignored by the MMIX processor when accessing memory.My only gripe from the perspective of a software engineer is that these clever low-level tricks do not translate to the high-level code we usually write. They remind me of Dijkstra’s words from “A Discipline of Programming”: “I know of mathematicians who revel in such optimization problems, sometimes thinking that they constitute the central problems of computer programming.” In TAOCP, algorithms are also presented as steps of pseudocode mixed with prose. You can translate them into a high-level programming language easier than from MIX or MMIX code. Just don’t be surprised that TAOCP 1–3 predates structured programming and Knuth is fond of GOTO. I think that a book expressing the algorithms from TAOCP in a mainstream programming language would be a best seller.“The MMIX Supplement…” caters to the connoisseurs of the art of computer programming. You can marvel at its intricacies like one marvels at a Fabergé egg. Perhaps by osmosis you will become a bit better as an artisan.
P**Z
MUST READ for Knuth lovers, but not for the "while we wait" reason
The publicity for this title, with Bob's blessing, touts this gem of a book as a kind of "transition" to the long awaited volumes 4+ by Knuth (which, due to his age, Robert says may or may not be completed in his lifetime!). But that is deceptive for two reasons:1. This book is NOT written by Knuth, though he wholly supports it. Some reviews online and even the Amazon searches can lull us into thinking this is a new fascicle.2. Bob's latest and presumably final book(s), given the initial 4 fascicles so far at this writing, are meant to "fill in" an area Knuth feels he's neglected: stochastics. Some editors call this combinatorics, but Bob actually has covered discrete topics, and certainly numerics, trees and combinatorics, in the past volumes.So what is this MMIX about? It hearkens back to the algorithmic interfaces between high level and machine code, in "dance the boolean boogie" fashion. There is math needed to do computer science (which we call discrete or concrete), and computer science to do math (originally the cross sectional sines of wires, and later 1's and 0's) and the two are related but different. What this fine text does is update all the (now legacy) code from MIX to a current standard (MMIX) that includes huge new differences in processor architecture, speed, and even parallel processing.So, if you are looking for Bob's promised work in stochastics, this isn't it. However, if you are on the circuit design side, embedded, algorithmic evaluation from the chip side, etc. this is a welcome "life giving" (or even life saving) entry that completely updates Knuth's older volumes for a new generation of internet of things programmers.The task undertaken in this text is nearly impossible, or at minimum, gargantuan. MIX was time tested, much simpler, and Knuth's code, after many years, was bulletproof. I have run a lot of examples from this book, and though there are minor format errors, I'm astonished at the quality of the code. I'm asking the publisher to include a look inside, because unless you are comfortable with the nitty gritty of interfaces, you might not enjoy this book (eg. assembly, the boolean translation aspects of Knuth's algorithm explanations, etc.).I highly recommend this book for any computer scientist or student who wants to understand how code really interacts with the chip and machine logic. The truth is, there isn't always time for this in today's curricula-- should I take the EE course, the big data course, or the embedded course? If you are leaning toward the embedded/ circuit side, this is a must. The "tone" isn't as "fun" as Bob, but the meticulous nature of tying to Bob's original MIX chapters and examples is truly amazing. It is like someone took a whole topic like astrodynamics models in Matlab and made them all work in GNU Octave! I've only checked about 1,000 lines of code so far, and will update this if I start to spot major glitches, but haven't so far. My students are also playing with MMIX via parallax, arduino, beaglebone, etc. (and of course Linux along the way) and I'll also update from that frame when we have more time with this code.
Trustpilot
4 days ago
2 months ago