Skip to main content

Readings

No textbook is required for the class, but if you would like to do some additional reading this page lists the relevant material from three popular texts:

    • Compilers: Principles, Techniques, and Tools (CPTT, aka "The Dragon Book")
      2nd edition
      Aho, Lam, Sethi, and Ullman

    • Engineering a Compiler (EC)
      2nd edition
      Cooper and Torczon

    • Modern Compiler Implementation (MCI)
      Appel, with Palsberg
      Note: there are versions of this book tailored to C and Java, as well as ML.

Lexical Analysis and Finite Automata

  • CPTT: Sections 3.1, 3.3, 3.4, 3.6, 3.7, 3.8
  • EC: Chapter 2 through Section 2.5.1 except for 2.4.4
  • MCI: Chapter 2

Parsing

  • CPTT: Sections 4.1-4.6, 4.8.1, 4.8.2
  • EC: Sections 3.1-3.5
  • MCI: Chapter 3

Semantic Analysis and Types

  • CPTT: Sections 5.1-5.3 6.3, 6.5
  • EC: Sections 4.1-4.4
  • MCI: Chapters 4 and 5

Runtime Systems and Code Generation

  • CPTT: Sections 6.2, 7.1-7.4, 8.1-8.3, 8.6
  • EC: Chapter 5, Sections 7.1-7.2
  • MCI: Chapters 6, 7, and 14

Optimization

  • CPTT: Sections 8.5, 8.7, 9.1-9.4
  • EC: Sections 8.1-8.4, 8.6, 9.1-9.3
  • MCI: Chapter 10

Advanced Topics: Register Allocation, Garbage Collection

  • CPTT: Sections 7.5-7.6, Section 8.8
  • EC: Sections 13.1-13.2, 13.4,
  • MCI: Chapters 11 and 13