|
#
|
Date
|
Topic
|
|
Reading
|
|
1
|
W 1/14/2009
|
Course Overview; Compiler Architecture; Execution Models
|
|
A 1, 2.
|
|
2
|
F 1/16/2009
|
Logistics; Software Tools
|
|
|
|
|
M 1/19/2009
|
Martin Luther King Day
|
|
|
|
3
|
W 1/21/2009
|
Mathematical Preliminaries; Recursive programming in Caml; lists
|
|
H 1-5
|
|
4
|
F 1/23/2009
|
Mathematical Preliminaries; Caml types; trees, pattern matching
|
|
H 6
|
|
5
|
M 1/26/2009
|
Grammars and Derivations; MEL: A Monotype Expression Language
|
|
A 4.1 - 4.3.
|
|
6
|
W 1/28/2009
|
Recursive Descent Parsing
|
|
A 4.4
|
|
7
|
F 1/30/2009
|
Introduction to Semantics
|
|
|
|
8
|
M 2/2/2009
|
Caml Bootcamp : Interpreting MEL
|
|
|
|
9
|
W 2/4/2009
|
Caml Bootcamp : higher-order functions
|
|
|
|
10
|
F 2/6/2009
|
Caml Bootcamp : modules, sets and maps
|
|
H 11-13
|
|
11
|
M 2/9/2009
|
Compiling MEL : Source-to-source program transformations; Naming and Flattening
|
|
|
|
12
|
W 2/11/2009
|
Compiling MEL : Simple Data Flow; Local Optimizations; Code Generation
|
|
|
|
13
|
F 2/13/2009
|
PEL: A Polytype Expression Language
|
|
|
|
14
|
M 2/16/2009
|
Type Systems; Dynamic and Static Typing
|
|
|
|
15
|
W 2/18/2009
|
Static Type Checking; Type Inference
|
|
|
|
16
|
F 2/20/2009
|
Code Improving Program Transformations
|
|
|
|
17
|
M 2/23/2009
|
Program Analysis : Control Flow; Basic Blocks
|
|
A 8.4
|
|
18
|
W 2/25/2009
|
Liveness Analysis; Local Register Allocation
|
|
|
|
19
|
F 2/27/2009
|
Midterm Exam
|
|
|
|
|
M 3/2/2009
|
Spring Break
|
|
|
|
|
W 3/4/2009
|
Spring Break
|
|
|
|
|
F 3/6/2009
|
Spring Break
|
|
|
|
20
|
M 3/9/2009
|
miniPython
|
|
|
|
21
|
W 3/11/2009
|
Lexer and Parser Generators: lex and yacc
|
|
|
|
22
|
F 3/13/2009
|
Type Checking and Translation of Imperative Features
|
|
|
|
23
|
M 3/16/2009
|
Compiling Function Definitions, Calls and Returns; Stack Layout
|
|
|
|
24
|
W 3/18/2009
|
Data and Control Flow
|
|
|
|
25
|
F 3/20/2009
|
Live Variable Analysis
|
|
|
|
26
|
M 3/23/2009
|
Copy Propogation
|
|
|
|
27
|
W 3/25/2009
|
Global Register Allocation
|
|
A 8.8
|
|
28
|
F 3/27/2009
|
More on Register Allocation
|
|
|
|
29
|
M 3/30/2009
|
Code Generation
|
|
|
|
30
|
W 4/1/2009
|
Linking; Run-time Systems
|
|
A 7.1 - 7.2
|
|
31
|
F 4/3/2009
|
Memory Management
|
|
A 7.4 - 7.5
|
|
32
|
M 4/6/2009
|
More on Memory Management
|
|
A 7.6 - 7.7
|
|
33
|
W 4/8/2009
|
Compiling Object-Oriented Programming Languages
|
|
|
|
|
F 4/10/2009
|
Easter Break
|
|
|
|
|
M 4/13/2009
|
Easter Break
|
|
|
|
34
|
W 4/15/2009
|
Security; Proof-Carrying Code
|
|
|
|
35
|
F 4/17/2009
|
Predictive Top-Down Parsing; First and Follow
|
|
|
|
|
M 4/20/2009
|
Patriot's Day
|
|
|
|
36
|
W 4/22/2009
|
Bottom-Up Parsing
|
|
A 4.5 - 4.7
|
|
37
|
F 4/24/2009
|
Bottom-Up Parsing
|
|
|
|
38
|
M 4/27/2009
|
Combinator Parsing
|
|
|
|
39
|
W 4/29/2009
|
Review and Wrapup
|
|
|
|
|
F 5/1/2009
|
Study Period
|
|
|