- Hardcover: 1000 pages
- Publisher: Addison Wesley; 2nd edition (September 10, 2006)
- Language: English
- ISBN-10: 0321486811
- ISBN-13: 978-0321486813
- Product Dimensions: 6.6 x 1.5 x 9.4 inches
- Shipping Weight: 2.6 pounds (View shipping rates and policies)
- Average Customer Review: 4.1 out of 5 stars See all reviews (112 customer reviews)
- Amazon Best Sellers Rank: #77,476 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Compilers: Principles, Techniques, and Tools (2nd Edition) 2nd Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
About the Author
Alfred V. Aho is Lawrence Gussman Professor of Computer Science at Columbia University. Professor Aho has won several awards including the Great Teacher Award for 2003 from the Society of Columbia Graduates and the IEEE John von Neumann Medal. He is a member of the National Academy of Engineering and a fellow of the ACM and IEEE.
Monica S. Lam is a Professor of Computer Science at Stanford University, was the Chief Scientist at Tensilica and the founding CEO of moka5. She led the SUIF project which produced one of the most popular research compilers, and pioneered numerous compiler techniques used in industry.
Ravi Sethi launched the research organization in Avaya and is president of Avaya Labs. Previously, he was a senior vice president at Bell Labs in Murray Hill and chief technical officer for communications software at Lucent Technologies. He has held teaching positions at the Pennsylvania State University and the University of Arizona, and has taught at Princeton University and Rutgers. He is a fellow of the ACM.
Jeffrey Ullman is CEO of Gradiance and a Stanford W. Ascherman Professor of Computer Science at Stanford University. His research interests include database theory, database integration, data mining, and education using the information infrastructure. He is a member of the National Academy of Engineering, a fellow of the ACM, and winner of the Karlstrom Award and Knuth Prize.
Browse award-winning titles. See more
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
I think there are two kinds of compilers books available today: "Principles and Theory centered" ones and "Modern Compilers design and implementation" ones.
One might wonder what's the difference between the two.
The former kind is more suited for a course on theoretical aspects that lay the foundation of compiler construction. DFAs, NFAs and Regular expression along with relations and equivalence between the them; FSAs minimizations; grammars and Push-down FSAs in details, ambiguities and and how to cope with them; and so on.
This is what I mean for "theoretical aspects". And these topics are covered in great details in this book. Almost the same details they (the authors) placed on writing a more specific book as "Introduction to Automata Theory ...".
Same situation applies to principles on more application- oriented topics. Take the example of LR parsing. You can face the topic from a more theoretical side, dealing with details on bottom up parsing (still, it implies an in-depth knowledge of grammars theory), handles and (viable) prefixes, SLR or canonical LR or LALR parsers and techniques for the relative tables construction by hands (and for this, add a detailed and solid knowledge of Push-down FSAs along with grammars). By hands, at least, if principles are what matter in your course.
If you expect to find these topics (with this depth) in a book of the other kind, you might get mislead. As I did when I still had not clear this distinction, before I took the course.
The latter kind of books is more suited for a more pragmatic course. One where real, "modern" compilers are at hands, and probably written as homeworks. In this case, time being always limited in a university course, one (the instructor) will likely have to give up with those theoretical aspects (or just mention them) and focus on coding techniques and modern compiler studying. But ... perhaps, for these purposes books like Grune's "Modern Compiler Design", or Pittman's "Art of Compiler Design, The: Theory and Practice" or, at some degrees, Muchnick's "Advanced Compiler Design and Implementation" will be more suited.
Back to the LR parsing example, more pragmatic compilers design courses will (for time constraints) just have a glance on principles and spend a considerable time learning YACC. To do both things you would have to take a course on YACC alone (it requires time to exploit all of its advanced features, you can be sure of this).
All this said, once again: which is the best book ? The one that best fits your needs. And in fact, my needs were those of my course, which was completely centered on theoretical aspects. And for this course, the Dragon book (as it is better known since its cover) proved to be perfect, definitely no matter it was published on 1986: FSAs and grammars and their theory is (for all practical purposes) still the same since even before then.
However, the Amazon Kindle edition of this book is *awful*. First and foremost, I discovered at least one error in an algorithm that is not present in the standard edition that causes the book's proposed algorithms to be incorrect (in this case, it was algorithm 4.31 - in step 1, you should compute FIRST(alpha), not FIRST(A).)
On top of that, there are spacing issues and font issues throughout the book. It appears that in many places where the standard edition had a word separated across lines, the Kindle edition merely has that word split in two with a space between its halves. Worse, the font choice used to typeset algorithms doesn't easily distinguish many greek lowercase letters from their modern English equivalents, the result being that it is fiendishly difficult to understand some algorithms (the book uses greek letters to indicate a 'sentential form', so they appear a *lot* and tend to be right next to their modern equivalents.)
In other words, I would give Compilers (the Standard edition) a 5/5 (or maybe a 4/5 - it could stand to use a bit more real-world code), but this Kindle edition is rubbish and you SHOULD NOT BUY.