Template:Short description Template:Infobox book
Compilers: Principles, Techniques, and Tools<ref>Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986. Template:ISBN</ref> is a computer science textbook by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman about compiler construction for programming languages. First published in 1986, it is widely regarded as the classic definitive compiler technology text.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
It is known as the Dragon Book to generations of computer scientists<ref name="MartelliRavenscroft2005">Template:Cite book</ref><ref name="Stephenson2005">Template:Cite book</ref> 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.
First editionEdit
The first edition (1986) is informally called the "red dragon book" to distinguish it from the second edition<ref name="Macz2020">Template:Cite book</ref> and from Aho & Ullman's 1977 Principles of Compiler Design sometimes known as the "green dragon book".<ref name="Macz2020" /> 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
Second editionEdit
Following in the tradition of its two predecessors, the second edition (2006) 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
- Garbage collection
- New case studies
Updated second editionEdit
In order to cover recent developments and issues, there is an updated second edition from Pearson Education India (4 July 2023), with contributions from Sorav Bansal. This revised and updated edition has new chapters on programming language semantics and undefined behaviour semantics.