Course Schedule and Lecture Notes
Lectures come in units which may or may not begin or end on a class boundary. The schedule is tentative and may subject to change without prior notice.
Topic 1: Introduction
Introduction to compiler construction, why compilers matter.
Topic 2: Lexical Analysis
regular expressions, automata, DFA, NFA, RE-NFA-DFA conversion, DFA minimization, scanner generation.
Topic 3: Parsing and Parser Design
Context-free Grammar, derivation, grammar ambiguity, left-recursion, left-factoring, first, follow set, recursive descent parsing, LL(1) and LR(1) Parsing, parser generation.
LL(1) and LR(1) Parsing slides
Topic 4: Semantics Analysis
Context-Sensitive Analysis, Attribute Grammar, symbol table, syntax-directed analysis
Topic 5: Intermediate Representation, Procedure Abstraction
Topic 6: Code Shape and LIR Code Generation
Topic 7: Scribbler code generation from ChirpIL
Topic 8: Compiler Analysis and Optimization
Topic 9: Register allocation
Topic 10: Instruction Selection and Instruction scheduling
Topic 11: Summary
Acknowledgements
The syllabus and teaching materials used in this course are based on Prof. Keith Cooper, Prof. Ken Kennedy and Dr. Linda Torczon’s teaching materials at Rice University. All rights reserved.