I am speaking from memory, and perhaps should revisit the text to see if these same criticism still hold years out.<p>As part of a series, "Modern Compiler Implementation in..." the C version came across as a poor translation.  I would say this is akin to Sedgewick's earlier version of his "Algorithms in..." texts, of which one was high quality but the translations were not.  Where Sedgewick seems to have first written in Pascal, Appel seems to have first written in Java.<p>The constructs that Appel places on top of C to make implementation discussions easier did not help.  While they attempted to make it object oriented, they made it messy and not "C" friendly.<p>For the basics, I kept referring to the Dragon book for better explanations then were provided there.  I did not find it encouraging that this book drove me to the text it is trying to out-date.<p>I had bought it for the last half, since texts on modern compiler design are rare (functional languages, optimizations, garbage collection).  But I recall the algorithms discussion to be subpar in that it was neither clear nor deep.<p>I still like the idea of structuring a compiler book around the semester long project of building one from the ground up.  However, I think both the Tiger language and this text could have used another year of revision.