- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Compilers: Principles, Techniques, and Tools (2nd Edition) Hardcover – Aug 31 2006
Special Offers and Product Promotions
Frequently Bought Together
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
From the Back Cover
This book provides the foundation for understanding the theory and pracitce of compilers. Revised and updated, it reflects the current state of compilation. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. The authors, recognizing that few readers will ever go on to construct a compiler, retain their focus on the broader set of problems faced in software design and software development. Computer scientists, developers, and aspiring students that want to learn how to build, maintain, and execute a compiler for a major programming language.
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.
Inside This Book(Learn More)
Browse and search another edition of this book.
What Other Items Do Customers Buy After Viewing This Item?
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.Read more ›
I bought this book not as it required so by almost any and all classes that teach about compiler design, but because I was interested in compilers and didn't have a chance to take class as part of my degree. It's a great book. Explains things well, and there are enough supporting material on the web that you can do a self paste study on your own and still get a lot out of this book.
This book is very theoretical! That may be good or bad, depending on how used you are to handling theory. It is well organized. The authors break the compiler into front end and back end, and then further into symbol table, lexer, parser, semantics, intermediate code generation, code generation, and code optimization. There are chapters dedicated to each.
I didn't read the whole book (so I'm still a mere mortal,) only the recommended introductory sections followed by some browsing. This was out of personal interest - not for a class. By the time I was through chapter 7 or so, I sat down and started planning a [cheesy] Pascal compiler (they give the grammar as a project.) I'm not done yet - heh - but I haven't been frustrated by anything the book hasn't covered yet. Therefore, I can testify that this book has really guided me well.
However, like I said, if you space out in the presence of pure crystalline theory, then this book is not for you. Usually the first 3 sections of a chapter are 100% theory, then the "how to" section, followed by advanced theory. It may help if you have taken some courses in abstract algebras - I'm not kidding! Also, a (the) major flaw this book has is the mysteriously missing pages of code. There is no complete compiler (of anything significant) to study (which is why it gets 4 instead of 5 stars.) The only thing close is a 5 page infix to postfix translator written in archaic C. This book gives you the tools, not the answers. Be warned.
Still, I recommend it to the dauntless and couragous... dragon slayers. [Hack-snort]
for a university student, this book may serve OK as a reference book, since you will mostly use the instructor's class notes anyway. what reference you use doesn't really matter.
for a self-learner, this book is really a terrible read. i recommend you get another book such as Thomas Pittman's <the art of compiler design>, or as of 2004, Cooper and Torczon's <engineering a compiler>.
to me, a book with more than 400 pages tends to be badly written. a book is thick mostly because the author(s) doesn't have time to make it thinner. though in this case, the authors have had about 20 years to revise the book. why didn't they do that?
compiler design is relatively easy to understand compared with other topics like numerical analysis. one needs only a high-school student's algebra and logic knowledge to understand what's going on, if the topic is carefully explained. the authors of this book pretend it's some esoteric high art (hinted by the ridiculous dragon-slaying cover art). confused by the disorganized explanation, you might as well buy that.
Most recent customer reviews
The "Dragon" book makes any bookshelf look more beautiful, and is great for photo shoots and job applications. Read morePublished on Dec 17 2013 by Jason
Entails all the important topics of compiler design and starts off with a creating a compiler for small program to demonstrate all the phases of compiling a program.. Read morePublished on April 14 2012 by cs undergrad
The worst textbook I've ever read.
For Many times I've been confused by the author's explanation for some very simple ideas.
What can you say about a book that has 41+ reviews, and all with close to perfect marks?
I bought this book not as it required so by almost any and all classes that teach... Read more
I took a course on compiler design and implementation
and i would say that this book can really introduce
compiler concepts but its very pascal based. Read more
If you find yourself struggling with this book, it is probably
not your fault. The book is not well written or well organized. Read more
This book, in its time, was a classic. When it was published
it was one of the best books available on compiler design. Read more
If you study langages and compiler design, you WILL hear about "the dragon book". Yet, it is the worst book I've read on the subject. Read morePublished on Dec 29 2002 by Mathieu
My graduate compiler class used this book. I hated it. The book is dry and seems to be disorganized to the untrained eye. Read morePublished on Dec 28 2002 by Jim
Look for similar items by category
- Books > Computers & Technology > Computer Science > Software Engineering > Information Systems
- Books > Computers & Technology > Hardware > Design & Architecture
- Books > Computers & Technology > Hardware > Microprocessors & System Design > Computer Design
- Books > Computers & Technology > Programming > Languages & Tools > Compiler Design
- Books > Computers & Technology > Programming > Languages & Tools > Compilers
- Books > Qualifying Textbooks - Fall 2007 > Computers & Internet
- Books > Textbooks > Computer Science & Information Systems