One of the finest computer science textbooks I've ever read, and I've read hundreds. Muchnick is clearly a demigod who's made a fine study of humans so that he might walk amongst us, for reasons unknown to anyone but him. This has reignited my passion for compiler design, and I absolutely can't wait until CS6241 next semester with Santosh Pande, himself reputed to be a Great Master well worth understudy.
Required text for CS6241 (graduate compiler design), on the agenda for next semester. I've leafed through it before and been very impressed; I look forward to making a serious study of this one!
Although Muchnick wrote Advanced Compiler Design and Implementation in 1997, he lays out such an excellent overview of the compilation process and delves into such extreme detail with dozens of useful optimizations that it would be remiss for a serious low-level developer's library to forget this book.
Muchnick targeted Master's or PhD level Computer Scientists when he wrote this book, and I hadn't been introduced to some math concepts that he used, such as lattices. A reader attempting to find a useful sequence for reading this book might want to include some topic in advanced mathematics prior to reading, although Muchnick stays light on the proofs and overall isn't as taxing to read for non-mathematical audiences as Knuth.
All of his algorithms are written in ICAN, which is a pseudo-language he invented that looks remarkably similar to ML or Haskell with iterative qualities. The text explanations of what the algorithms do are usually strong enough that a reader familiar with data structures can follow along without referencing the gory details in the code.
All in all, I highly recommend Muchnick as a follow-up to Appel's Modern Compiler Implementation in ML, as the other text will bring a less advanced reader up to speed for this book.
Strong on the theory and full of references to the contemporary literature. But contemporary here was quite a long time ago. So there's plenty on now obsolete RISC architectures, but nothing on the latest Intel and ARM ones, specifically concerning recent developments like out of order execution.
The ICAN notation is a bit annoying. It's a peculiar mix of script-like control flow ("do ... od"), also with lots of APL-like symbols. Generally I just skimmed the algorithms expressed in ICAN.
Uses its own "invented" programming languages for expressing algorithms. Algorithms unclear. Probably the only book which is comprehensive in terms of classical compiler optimizations. Gave up. Try the Dragon Book (clearer) or Engineering a Compiler (easier)