COMP 412: Compiler Construction for Undergraduates
Keith Cooper
Zoran Budimlic
Department of Computer Science
Rice University
Houston, Texas, USA
Fall 2018: HRZ 212 on Monday, Wednesday, and Friday at 11:00am


Slides and/or Notes

  1. Overview of Course and Compilation
  2. Building a Scanner (from a lab 1 perspective)
  3. Building a Parser (from a lab 1 perspective)

  4. Lexical Analysis, I    Chapter 2 in the text
    Draft version of Chapter 2 from EaC2e
  5. Lexical Analysis, II    Thompson's Construction and the Subset Construction
  6. Lexical Analysis, III    DFA Minimization
  7. Lexical Analysis, IV    Implementing Scanners (and Scanner Generators)

  8. Parsing, I    Grammars, derivations, parse trees, ambiguity
  9. Parsing, II    Recursion, precedence, and associativity
  10. Parsing, III    General left recursion algorithm, FIRST, FOLLOW, LL(1), Left factoring

  11. Local Register Allocation Lab 2; 2 classes
    (see also the Projects page)

  12. Parsing, IV    FIRST, FOLLOW, LL(1) Parsing
  13. Parsing, V    Bottom-up Parsing, Shift-Reduce, The Magic of Handles

    Material above this line is covered on the midterm exam

    Material below this line is covered on the final exam

Additional Materials

  1. Lab 2 Tutorial 1
  2. Information on the ILOC Virtual Machine and its Trace Facility
  3. The Software Stack
    What happens to code after compilation?
  4. Notes on Sustainable Memory Use in Java    (i.e., garbage collection)
    It is hard to understand your Java lab's performance without understanding garbage collection and its impact on running times.


Fall 2017 Syllabus

Comp 412 Home Last modified Friday, 21-Sep-2018 10:44:19 CDT.