Compilers: Principles, Techniques, and Tools
The cover of the second edition (North American), showing a knight and dragon
|Author||Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman|
|Publisher||Pearson Education, Inc|
|ISBN||ISBN 0-201-10088-6, ISBN 0-321-48681-1|
|LC Class||QA76.76.C65 A37 1986|
Compilers: Principles, Techniques, and Tools is a computer science textbook by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman about compiler construction. Although more than two decades have passed since the publication of the first edition, it is widely regarded as the classic definitive compiler technology text.
It is affectionately known as the Dragon Book to a generation of computer scientists as its cover depicts a knight and a dragon in battle, a metaphor for conquering complexity. This name can also refer to Aho and Ullman's older Principles of Compiler Design.
The first edition is informally called the "red dragon book" to distinguish it from the second edition and from Aho & Ullman’s 1977 Principles of Compiler Design sometimes known as the "green dragon book"  Topics covered in the first edition include:
- Compiler structure
- Lexical analysis (including regular expressions and finite automata)
- Syntax analysis (including context-free grammars, LL parsers, bottom-up parsers, and LR parsers)
- Syntax-directed translation
- Type checking (including type conversions and polymorphism)
- Run-time environment (including parameter passing, symbol tables, and register allocation)
- Code generation (including intermediate code generation)
- Code optimization
Following in the tradition of its two predecessors, the second edition features a dragon and a knight on its cover, and is informally known as the purple dragon. Monica S. Lam of Stanford University became a co-author with this edition.
The second edition includes several additional topics, including
- directed translation
- new data flow analyses
- parallel machines
- JIT compiling
- garbage collection
- new case studies
- Programming language
- Structure and Interpretation of Computer Programs
- Principles of Compiler Design
- Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986. ISBN 0-201-10088-6
- "The Top 9 1/2 Books in a Hacker's Bookshelf". Retrieved 2010-10-23.
- Alex Martelli; Anna Martelli Ravenscroft; David Ascher (2005). Python cookbook. O'Reilly Media, Inc. p. 587. ISBN 978-0-596-00797-3. Retrieved 21 October 2011.
- Ian Stephenson (2005). Production rendering: design and implementation. Springer. p. 139. ISBN 978-1-85233-821-3. Retrieved 21 October 2011.
- Mad Macz (January 2002). Internet Underground: The Way of the Hacker. PageFree Publishing, Inc. p. 219. ISBN 978-1-930252-53-0. Retrieved 21 October 2011.