Engineering a Compiler
E**S
This book is the best, most up-to-date discussion of compiler technology available today.
I have been using the second edition for years. The new third edition accounts for LLVM code generation tools, including the static single assignment (SSA) form, which greatly simplifies code generator target new targets.
M**E
Seller went above and beyond
Good technical resource. Highly recommend the seller.
J**O
Ok as a reference
Engineering a Compiler is not bad. I use it as a reference once in a while. The problem is that it's just worse all around than some other books on the topic.Newcomers to the field of compilers would do much better to read Bob Nystrom's Crafting Interpreters, which is free online or $45 in print, and is written in a tutorial style that is much more engaging to read than a traditional textbook. More advanced readers would probably prefer the venerable dragon book, which covers almost all the same topics as Engineering a Compiler, often in more detail and at a better pace.You can still learn quite a lot about compilers from this book, and others might prefer this to the dragon book, which has a bit of a reputation for being difficult. But on the other hand, this is an $80 textbook that feels like a worse version of the dragon book, despite coming out 16 years later. I wouldn't recommend it for most people.
E**.
Great detailed explanations with mathematical background of the things... Excellent !
If you know Formal Language Theory, Automata Theory, and Set Theory, this book is really great to understand the details of what is going on under the hood of a compiler. Really recommend it !
T**.
A lesser version of the "Dragon Book"
I'm somewhat disappointed by this book, although it's not a bad reference overall.The text is mostly fine and quite thorough, with a very similar approach to the "Dragon Book" while being sometimes more up-to-date (full reference of the Dragon Book at the end).However, many sections are less detailed and painful to read. For example, the RE/NFA/DFA scanners seem to miss some steps and a proper presentation. The transformation from RE to NFA starts with a block of theory in which some terms have not been introduced - the reader has to fetch them further in the book and look at later examples to make sense of what the authors meant. Or the top-down and bottom-up parsing sections, which are essential parts of understanding how compilers work, are too summarized and not very clear in comparison to the Dragon Book either. There too, the authors tend to be entrenched in their abstract narrative, sometimes being even inconsistent in their notation, instead of clarifying what they mean with a simple example.I'm surprised that modern tools are not better represented since they are a great help when developing a compiler (Lex, Yacc, ANTLR, LLVM, ...). It's always a good idea to mix theory and practice, and help the reader understand how it is applied with existing tools. After all, most of them won't be making a new compiler from scratch, they will be using existing tools.There seems to be font issues as well, because some variable letters appear in a completely different format in the equations and the related text, which may be confusing sometimes. I know that this problem occurs sometimes in the publishing process when different software tools are used - authors of a couple of other books have reported that to me in the past. But this is the third edition, such issues should have been identified for a long time.More frustrating is the lack of solution to the exercises. The book claims in the preface that the solutions, along with other resources, were available on the website. I typed the long URL to get there, but there was nothing available. After a few exchanges with a support who was obviously unwilling to help in any way, it appears that this promised "additional material" is only available to professors, after giving personal details on a specific portal (you still have to go through the support to get there, and get an approval after submitting your personal details).It's not entirely legal and I was relying on the solutions to help with the learning curve, so I feel cheated. Just keep in mind that it's simply not available to anyone - I'm not even sure that it's free to teachers who qualify.Similarly to other reports, the first book I received was in bad condition, its cover had clearly suffered during the shipping or when it was stored by Amazon. Also, the printing process doesn't seem very good since there are ink stains and artefacts on many pages. Fortunately, the 2nd book I received after returning the first was in a better shape, and had fewer of those stains.Physically overall, it is easy to handle and while the sheets are curiously uneven on the fore edge, the assembly seems robust and not likely to fall apart after the first reading. I like the notes in the margin, but why not use them to add definitions and acronyms (that I had to search multiple times)? The very succinct index didn't help much either. For some of the terms, I finally looked into the Dragon book.Considering the steep price of this book, I'm removing a few stars for all those problems. If the solutions were freely available (or better - in the book itself), if the book had a good index, and no font issues, I would have given it 3 stars.Buy this book only if you can't get a copy of Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman.
G**S
Please consider using better packaging
It is in my opinion the best textbook for the subject however it can be improve by providing more practical knowledge for example how to write a grammar or how to use popular tools like flex/bison, ANTLR. It can also provide some software design principles about how a compiler is madeI don't count how many times i recieved a book in a NOT "new" condition from Amazon. The packaging is very thin and the books come in not acceptable condition. Perchaps they don't even care.
Trustpilot
2 weeks ago
1 month ago