
Contents
List of Figures xiii
Preface xvii
About the Authors xxiii
Acknowledgments xxv
1 Compilation 1
1.1 Compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Programming Languages . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Machine Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Why Should We Study Compilers? . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 How Does a Compiler Work? The Phases of Compilation . . . . . . . . . . 4
1.3.1 Front End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Back End . . . . . . . . . . . . . . . . . . . . . . .