1 Introduction 1
2 A Simple Compiler 31
3 Scanning—Theory and Practice 57
4 Grammars and Parsing 113
5 Top-Down Parsing 143
6 Bottom-Up Parsing 179
7 Syntax-Directed Translation 235
8 Symbol Tables and Declaration Processing 279
9 Semantic Analysis 343
10 Intermediate Representations 391
11 Code Generation for a Virtual Machine 417
12 Runtime Support 445
13 Target Code Generation 489
14 Program Optimization 547