- Paperback: 556 pages
- Publisher: Cambridge University Press (July 8, 2004)
- Language: English
- ISBN-10: 0521607655
- ISBN-13: 978-0521607650
- Product Dimensions: 7.4 x 1.2 x 9.7 inches
- Shipping Weight: 2.7 pounds (View shipping rates and policies)
- Average Customer Review: 12 customer reviews
- Amazon Best Sellers Rank: #715,547 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.
Modern Compiler Implementation in C
Use the Amazon App to scan ISBNs and compare prices.
"Enlightenment Now: The Case for Reason, Science, Humanism, and Progress"
Is the world really falling apart? Is the ideal of progress obsolete? Cognitive scientist and public intellectual Steven Pinker urges us to step back from the gory headlines and prophecies of doom, and instead, follow the data: In seventy-five jaw-dropping graphs, Pinker shows that life, health, prosperity, safety, peace, knowledge, and happiness are on the rise. Learn more
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
This new, expanded textbook describes all phases of a modern compiler, including current techniques in code generation and register allocation, for imperative, functional and object-oriented languages. In a concise and practical way the author describes the fundamentals of compilation and then moves on to advanced topics such as SSA form, loop scheduling, and optimization for cache-memory hierarchies. A unique feature is a compiler implementation project in C, including front-end and 'high-tech' back-end phases.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
This book is weak on types of grammars and the differences between LL, LR and LALR parsers for instance, and could include a hell of a lot more material on using parser generators. BUT it includes a lot of readable material on more advanced topics like code generation and garbage collection. It covers the design and implementation of object oriented languages, which is a pleasant suprise.
Before tackling this book, I recommend starting with something like "Crafting a Compiler with C" by Fischer and LeBlanc. Before using this book, you must have a masterful command of the C language (in my opinion the C code is unusually ugly in this book, too).
I don't care too much for the ongoing project of the Tiger language and compiler, but it's better than nothing. (The author may as well have compiled Pascal instead).
I've covered a fair amount work and even then had to read this book carefully. I've tackled books like "Compilers: Principles, Techniques and Tools" (the so called Dragon Book) and "Crafting a Compiler with C," amongst dozens of others. This is not a light read, and it is quite dense. But it's straight to the point, and covers material other compiler construction books don't.
One of the high points of this book is that it won't put you to sleep! It really IS readable. Finally, I will emphasise again, this is not a beginner's text.
The book (at least the first half) stands or falls on the project. The project itself is outstanding - there are several interesting tidbits. It's probably too large for a three-credit course at most institutions - I had to pare it down by giving additional pieces to my students.
Unfortunately, the project destroys the book. The book devotes large portions of the first half to trying to explain it. Explanations are only marginally coherent. To make sense, the project desperately needs detailed, low-level documentation, listing each function of each module and what it does. Additionally, it would work better if there were a clearer distinction of where the theory ends and the project begins.
The program is itself well-structured on the high level. Within functions, they need to format code properly. They do some interesting things with trying to do functional programming within C - a controversial move, but not one that I mind. The definite impression I get is that the publishers demanded a C version against Appel's will. I haven't read the Java or ML versions, but I bet the code is better (especially ML).
Outside the project, I found the book strong. The algorithms are well-presented, with lots of outstanding examples. (My students found them confusing; I attribute that to the material's inherent difficulty, not the writing.) It does a thorough job, but not overly thorough. Some of the later chapters on advanced topics I've found slightly less complete - but they're advanced topics, after all.
I'd recommend it over the dragon book; but it's a close call. But this could be so much better so easily... Appel just needs to flesh out the project, and he'd have a truly great book.
Some topics contain various algorithms and approaches to the same problem, which may be confusing at first,
but when the concepts are grasped provides great understanding.
But the inline-code presented is not very readable (bad formatting and naming conventions) in my opinion.
The parts that are independent of the concrete compiler-project presented in the book are the best.