- Gebundene Ausgabe: 1009 Seiten
- Verlag: Addison Wesley; Auflage: 2nd ed. (20. Oktober 2006)
- Sprache: Englisch
- ISBN-10: 0321486811
- ISBN-13: 978-0321486813
- Größe und/oder Gewicht: 16,8 x 3,8 x 23,9 cm
- Durchschnittliche Kundenbewertung: 2 Kundenrezensionen
- Amazon Bestseller-Rang: Nr. 146.848 in Fremdsprachige Bücher (Siehe Top 100 in Fremdsprachige Bücher)
- Komplettes Inhaltsverzeichnis ansehen
Compilers: Principles, Techniques, and Tools (Englisch) Gebundene Ausgabe – 20. Oktober 2006
Kunden, die diesen Artikel gekauft haben, kauften auch
Welche anderen Artikel kaufen Kunden, nachdem sie diesen Artikel angesehen haben?
Es wird kein Kindle Gerät benötigt. Laden Sie eine der kostenlosen Kindle Apps herunter und beginnen Sie, Kindle-Bücher auf Ihrem Smartphone, Tablet und Computer zu lesen.
Geben Sie Ihre Mobiltelefonnummer ein, um die kostenfreie App zu beziehen.
Wenn Sie dieses Produkt verkaufen, möchten Sie über Seller Support Updates vorschlagen?
Compilers: Principles, Techniques and Tools, known to professors, students, and developers worldwide as the "Dragon Book," is available in a new edition. 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. New chapters include: Chapter 10 Instruction-Level Parallelism Chapter 11 Optimizing for Parallelism and Locality Chapter 12 Interprocedural Analysis
Über den Autor und weitere Mitwirkende
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.
After reading first chapters of this book, I have decided to stop and to search for another sources of explanation, and I found one very helpful, useful book "Engineering a Compiler" by Keith D. Cooper and Linda Torcson. Some passages below should give you a feeling of how different they are.
On Context-Free Grammars
1) from "Compilers. Principles, Techniques, and Tools":
[...]In this section, we introduce a notation - the "context-free grammar", or "grammar" for short - that is used to specify the syntax of a language. Grammars will be used throughout this book to organize compiler front ends.[...]
2) from "Engineering a Compiler":
[...]The traditional notation for expressing syntax is a grammar - a collection of
rules that define, mathematically, when a string of symbols is actually a sentence
in the language.
Computer scientists usually describe the syntactic structure of a language
using an abstraction called a context-free grammar (cfg). [...]
Die hilfreichsten Kundenrezensionen auf Amazon.com (beta)
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.
Initially when I bought this book because I was nervous about the new edition. The previous 1986 edition with the quaint illustration of the red dragon was the bench-mark gold standard for compiler texts, and I was worried that the new edition (with it's digitally animated cover, which loses much of the charm of the original) would be marred by loses and compromises. That anxiety was ill-founded. The new edition is every bit as wonderful and complete as the previous version was, with valuable information updated but nothing that I can see that is lost.
One small complaint I might have, and this is not something that the authors could control, is that some important new developments have been made in the world of compilers and interpreters in the past few years. Things like PEG (Packrat parsing and OMeta), parser combinators and compound grammars are all new in the front-end world, While the state of the art in interpreters and VMs is leading to things like JIT which are turning out to be of central importance in many places but which are barely mentioned in this book at all.
Anyway, on balance this is an excellent book and one that is well worth buying if you're interested in compilers, interpreters, VMs or other infrastructure components like that. This is a must-read if you're interested in working on a major existing compiler project or if you would like to dabble with your own little language or language runtime.
You can find better books for each of the topics splited in lots of books, but you will not find a single one that covers like this one did for so long time!
I also find it a little difficult to read due to lots of "condensed" information and the need to understand each topic before going further. But in all cases, this is a must have since it is the "tome" of parsing!