Addison Wesley, 2002. 811 p. ISBN:7115099162, 0201100886
Principles, Techniques, and Tools is a famous computer science textbook by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman about compiler construction. Although decades have passed since the publication of the first edition, it is widely regarded as the classic definitive compiler technology text.
It is known as the Dragon Book because its covers depict a knight and a dragon in battle. The first edition is informally called the "red dragon book" to distinguish it from the second edition and from Aho & Ullman's Principles of Compiler Design (1977, sometimes known as the "green dragon book" because the dragon on its cover is green).
A new edition of the book was published in August 2006.
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 storage allocation)
- Code generation (including intermediate code generation)
- Code optimization
Principles, Techniques, and Tools is a famous computer science textbook by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman about compiler construction. Although decades have passed since the publication of the first edition, it is widely regarded as the classic definitive compiler technology text.
It is known as the Dragon Book because its covers depict a knight and a dragon in battle. The first edition is informally called the "red dragon book" to distinguish it from the second edition and from Aho & Ullman's Principles of Compiler Design (1977, sometimes known as the "green dragon book" because the dragon on its cover is green).
A new edition of the book was published in August 2006.
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 storage allocation)
- Code generation (including intermediate code generation)
- Code optimization