Excellent book for a first course in compiler construction
|von Alfred V. Aho|
If you are getting into compiler construction today, you will see a lot of "cutting edge" stuff which discusses minute details of optimization but assumes you are already versed in the art. You may also see a few "baby books" that don't require any real background but also don't give you any real depth.
This is the Standard reference on compiler construction. It assumes you are familiar with programming, and it gives you enough tools and techniques to write good compilers. More importantly, it is the book that will give you the grounding in terms of art and technique that more recent works require for comprehension.
In short, this is the book that can take you from knowing programming to knowing how to build compilers. There are cutting edge things it doesn't cover, but it gives you the knowledge to understand them when you get to them.
Great for hard-core compiler gurus
I picked this text up in anticipation for a compiler course at Georgia Tech. I have not read any other compiler books, so I have little to compare it to. However, I can definitely say that this is a book for people who are looking for "hard-core" compiler knowledge. It is a very dry and meticulous book. Contrary to the opinions of other reviewers, this is not an "easy to understand text". It will take quite a bit of determination to get the most out of it. If you don't love the stuff, you'll stop reading at page 100 or so. As for topics explained in this book, it seems to cover just about everything you will need to understand and write a full-blown compiler.
Excellent Introductory Compiler Text
This is a comprehensive and easy to understand text. It covers all the fundamental stages of compiler design, with plenty of explanation (both practical and theoretical). It doesn't exhaustively cover every conceivable topic, but it does leave you with a good taste of what's involved. Of course, it is not a book for beginning programmers, and there are very few code examples. Judging by the comments of some reviewers, I would suspect that they gave poor reviews because they lacked the prerequisite background (familiarity with a good HLL like C, data structures, mathematical background etc). As with any 'advanced' topic in computer science, there is quite a lot expected from you. Upon first reading, some topics occasionally seem overwhelming. Welcome to Earth. This is where your library card comes in. Do a little research and then come back to this text; you'll find that it is well organized and extremely clear. If you want a cookbook this book isn't for you. If you want a solid understanding of compiler fundamentals then this book is your best bet.