Calendar, Slides, and Assignments

The following schedule is tentative. As the course progresses hyperlinks will be provided to the lecture notes.


Lec.

Date

Topics

Reading 

Assigned

Due

1

Jan. 22

Course overview (PDFPDF-6up)

Ch. 1

(optional: J.Backus, Speedcoding)

 

 

2

Jan. 27

Overview of COOL  (PDF, PDF-6up)

The COOL Reference Manual (PDF ver)

PA 1

 

3

Jan. 29

Lexical Analysis. Finite Automata (PDF, PDF-6up)

Ch. 3.1 - 3.5

 

 

4

Feb 3

Finish Finite Automata. 

(same notes as in lecture 3)

Ch. 3.6 - 3.7

(optional: DFA minimization [Note or Ch 3.9.6])

 

Feb. 4

PA1 due 

 

 

PA 1

5

Feb. 5

Intro to Parsing. Ambiguity. 

Start Top-Down Parsing. (PDF, PDF-6up)

Ch. 4.1 - 4.3

 

                      

 

6

Feb. 10

Top-Down Parsing (PDF, PDF-6up)

Ch. 4.4

WA 2

PA 3

WA 1

(Solution)


Feb. 11

PA 2 due



                      

 PA 2

7

Feb. 12

Bottom-Up Parsing (PDF, PDF-6up)

Ch. 4.5, 4.7-4.9

 

 


Feb. 17

No Class (Holiday)




8

Feb. 19

LR Parsing  

(same notes as in lecture 7)

Ch. 4.9

WA 3

WA 2

(Solution)

9

Feb. 24

Finish LR parsing. 

(same notes as in lecture 7)

Midterm1 Review (PDF, PDF-6up)

Ch. 7.6

 

 

10

Feb. 26

Cool Type Checking (PDF, PDF-6up)

Ch. 6.1 - 6.5

(optional: L.Cardelli, Type Systems, Sec.1, 2, 4)

WA 3

(Solution)


Mar. 3

Midterm I (sample / solution)



 

11

Mar. 5

More Cool Type Checking 

(same notes as in lecture 10)

 

 

WA 4

(Solution)

 

Mar. 6

PA 3 due

 

 

PA 3

12

Mar. 10

More Cool Type Checking 

(same notes as in lecture 10)

Error handling suppplement to lect

 

 

13

Mar. 12

Finish Type Checking.  (PDF, PDF-6up)

Runtime Organization. (PDF, PDF-6up)

Ch. 7.1-7.5,7.7-7.8.

WA 5

 

14

Mar. 17

More Runtime Organization (PDF, PDF-6up)

Simple Code Generation  (PDF, PDF-6up)

Ch. 8, codegen example SPIM, SPIM doc

 


15

Mar. 19

OO Code Organization 

(same notes as in lecture 14)

 

WA 6

WA 5

(Solution)

 

Mar. 24

No Class (Spring Break)

 

 

 

 

Mar. 26

No Class (Spring Break)

 

 

 

16

Mar 31

COOL Operational Semantics (PDF, PDF-6up)

Cool manual.

 

 

17

Apr 2

Intermediate Languages (PDF, PDF-6up)

Ch. 9.4, 9.9, 10.1-10.5

 WA 6

(Solution)

 

Apr. 7

Midterm II (sample / sample-solution)

(Solution)

 

 

 

18

Apr. 9

Local Optimization (slides notes as in lecture 17). 

Start Global Optimization.(PDF, PDF-6up

Ch.10.5-10.6

PA 5 

PA 4 

19

Apr. 14

Global Optimization  (same notes as in lecture 18)

 

WA 8


20

Apr. 16

Type Checking Assembly Language – or, Compiler Debugging Made Easy (PDF, PDF-6up)

 

 

WA 7

21

Apr. 21

Register Allocation (PDF, PDF-6up)

Ch. 9.7

WA 9

WA 8

22

Apr. 23

Instruction Scheduling (PDF, PDF-6up)

Ch. 9.1

 

PA 5 checkpoint 

23

Apr. 28

Garbage Collection (PDF, PDF-6up)

 



24

Apr. 30

Summary


 

WA 9 

 

May 9

 

 

 

PA 5

PA = programming assignment. WA = written assignment

Readings are from Aho, Sethi, Ulman, " Compilers: Principles, Techniques and Tools ".