Course Schedule
CS421/521: Compilers and Interpreters, Fall 2008, Yale University
Last modified: October 27, 2008.
9/3:
Lecture: Introduction; ML Language (Appel 1; Ullman 1-3)
9/8:
Lecture: Regular Expressions; Finite Automata (Appel 2.1-2.4)
9/10:
Lecture: SML/NJ; More about ML (Ullman 4-9)
9/12:
Assignment 1
Due.
9/15:
Lecture: Finite Automata; Lex and ML-Lex (Appel 2.3-2.4,
ML-Lex Manual
)
9/17:
Lecture: Context-Free Grammars; Parsing (Appel 3.1-3.4)
9/22:
Lecture: Parsing & Yacc (
ML-Yacc Manual
; Appel 3.2-3.4)
9/23:
Assignment 2
Due.
9/24:
Lecture: Tiger Language; Abstract Syntax (Appel 4, Appendix)
9/29:
Lecture: Symbol Tables; Type Checking (Appel 5.1-5.3)
9/30:
Assignment 3
Due.
10/1:
Lecture: More on Type Checking (Appel 5.3-5.4)
10/6:
Lecture: Stack Frames (Appel 6)
10/7:
Assignment 4
Due.
10/8:
Lecture: More on Stack Frames (Appel 6)
10/13:
Lecture: Intermediate Trees; Expressions to Trees (Appel 7.1-7.3)
10/15:
Lecture: Declarations to Trees; Canonical Trees (Appel 7.3, 8.1-8.2)
10/20:
Lecture: Parser Generation
10/21:
Assignment 5
Due.
10/22:
Lecture: Instruction Selection; Assembly Code (Appel 9-10)
10/27:
Lecture: Liveness; Register Allocation; Linking (Appel 10-12)
10/29:
Lecture: Higher-Order Functions; Closures (Appel 15)
11/2:
Assignment 6a
Due.
11/3:
Lecture: Closures; Object-Oriented Languages (Appel 14)
11/5:
Lecture: Object-Oriented Languages (Appel 14)
11/6:
Assignment 6b
Due.
11/10:
Lecture: Garbage Collection (Appel 13)
Assignment 6c
Due.
11/12:
Lecture: Program Analysis (Appel 17-18)
11/14:
Assignment 6d
Due.
11/17:
Lecture: Compiler Optimizations (Appel 18-19)
11/18:
Assignment 6e
Due.
11/19:
Lecture: Certified Code; Virtual Machine (Guest Lecture by Chris Hawblitzel)
11/24:
THANKSGIVING RECESS
11/26:
THANKSGIVING RECESS
12/1:
Lecture: Certified vs. Certifying Compiler
12/3:
Lecture: In-class Quiz
12/12:
Assignment 7
Due.
Copyright (c) 1998-2008
Zhong Shao
, Dept. of
Computer Science
,
Yale University