The following schedule is tentative.
As the course progresses hyperlinks will be provided to the lecture notes.
|
Week |
Lec. |
Date |
Topic |
Reading (from Aho,
Sethi, Ulman “Compilers: Principles,
Techniques, and Tools”) |
Assigned |
Due |
|
1 |
1 |
Jan. 17 |
Course overview (PDF) |
Ch. 1 (optional: John
Backus short paper on Speedcoding) |
|
|
|
2 |
Jan. 19 |
Overview of COOL (PDF) |
CoolAid: The COOL Reference Manual
also in PS and PDF |
PA 1 |
|
|
|
2 |
3 |
Jan. 24 |
3.1 - 3.5 |
|
|
|
|
4 |
Jan. 26 |
Finish Finite
Automata. (same notes as above) |
3.6 - 3.7 |
WA 1 |
|
|
|
|
Jan. 27 (Fri) |
PA1 due |
|
|
PA 1 |
|
|
3 |
5 |
Jan. 31 |
Intro to Parsing.
Ambiguity. Start Top-Down Parsing (6up PDF) (2up PDF) |
4.1 - 4.3 |
|
|
|
6 |
Feb. 2 |
4.4. |
WA 2 |
WA 1 |
||
|
|
Feb. 3 (Fri) |
PA2 due |
|
|
PA 2 |
|
|
4 |
7 |
Feb. 7 |
4.5, 4.7-4.9. |
|
|
|
|
8 |
Feb. 9 |
LR
Parsing (same lecture notes as in lecture 7) |
4.9 |
WA 3 |
WA 2 |
|
|
5 |
9 |
Feb. 14 |
Finish LR parsing.
(same lecture notes as in lecture 7) |
7.6. |
|
|
|
10 |
Feb. 16 |
6.1 - 6.5. (Optional:
Luca Cardelli, "Type Systems" (PS,
PDF),
Sections 1,2 and 4) |
WA 4 |
WA 3 |
||
|
|
Feb. 17 (Fri) |
PA3 due |
|
|
PA 3 |
|
|
6 |
11 |
Feb. 21 |
More Cool Type
Checking (same lecture notes as in lecture 10) |
|
|
WA 4 |
|
|
Feb. 23 |
Midterm I |
|
|
|
|
|
7 |
12 |
Feb. 28 |
More Cool Type
Checking (same lecture notes as in lecture 10) |
Error handling
suppplement to lect |
|
|
|
13 |
Mar. 2 |
Finish Type Checking.
Runtime Organization. (6up PDF) (2up PDF) |
7.1-7.5,7.7-7.8. |
WA 5 |
|
|
|
8 |
14 |
Mar. 7 |
Ch. 8, codegen example , SPIM docs |
|
PA 4 checkpoint |
|
|
15 |
Mar. 9 |
OO Code Organization
(same notes as in lecture 14) |
|
WA 6 |
WA 5 |
|
|
9 |
16 |
Mar 14 |
Cool manual. |
|
|
|
|
17 |
Mar 16 |
9.4,9.9,10.1-10.5 |
WA 7 |
WA 6 |
||
|
|
Mar 17 (Fri) |
|
|
|
PA 4 |
|
|
11 |
18 |
Mar. 21 |
Finish Local
Optimization (slides from prev. lecture). Start Global Optimization.
Languages (6up PDF) (2up PDF) |
10.5-10.6 |
|
|
|
19 |
Mar. 23 |
Global
Optimization (same slides as in previous lecture) |
|
WA 8 |
WA 7 |
|
|
10 |
|
|
Spring Break |
|
|
|
|
|
|
Spring Break |
|
|
|
|
|
12 |
20 |
Apr. 4 |
Type Checking
Assembly Language – or, Compiler Debugging Made Easy (6up PDF) (2up PDF) |
|
|
PA 5 checkpoint |
|
21 |
Apr. 6 |
9.7 |
WA 9 |
WA 8 |
||
|
13 |
|
Apr. 11 |
Midterm II |
|
|
|
|
22 |
Apr. 13 |
9.1 |
|
|
||
|
14 |
23 |
Apr. 18 |
|
PA 6 |
PA 5 |
|
|
24 |
Apr. 20 |
|
WA 10 |
WA 9 |
||
|
15 |
25 |
Apr. 25 |
|
|
|
|
|
26 |
Apr. 27 |
|
WA 11 |
WA 10 |
||
|
16 |
27 |
May 2 |
|
|
||
|
|
May 3 |
|
|
|
PA 6 |
|
|
28 |
May 4 |
Lecture cancelled. EECS faculty retreat. |
|
|
|
|
|
17 |
29 |
May 9 |
Invited lecture:
Compiling for the IA64. By Allan Knies,
Principal Engineer, Intel Corp. (6up PDF) (2up PDF) |
|
|
WA 11 |
|
|
|
May 12 |
|
|
|
PAX (extra credit) |
PA = programming assignment. WA = written assignment
Readings are from Aho, Sethi, Ulman, " Compilers: Principles, Techniques and Tools ".
Note that some of the lectures contained in Powerpoint format use symbols and
features of the TexPoint
package. You do not need that package if you read the PDF or PS versions of the
slides.