5.1 A Compiler Begins with a Language
5.2 The First Compiler, and Abstracting Boilerplate
5.3 Abstracting Machine Details
5.4 Imperative Abstractions
5.5 Register Allocation
5.6 Structured Control Flow
5.7 Procedural Abstraction: Call
5.8 Procedural Abstraction: Return
5.9 Data types: Immediates
5.10 Data types: Structured Data and Heap Allocation
5.11 First-class Procedures: Code is Data
5.12 Appendix: Racket Preliminaries
5.13 Appendix: Compiler Design Recipe
~3 Chapters still being rewritten