CS164: Lectures

Lectures

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

Lexical Analysis. Finite Automata (6up PDF) (2up PDF)

3.1 - 3.5

 

 

4

Jan. 26

Finish Finite Automata. (same notes as above)

3.6 - 3.7

WA 1
PA 2

 

 

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

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

4.4.

WA 2
PA 3

WA 1

 

Feb. 3 (Fri)

PA2 due

 

 

PA 2

4

7

Feb. 7

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

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

Cool Type Checking (6up PDF) (2up PDF)

6.1 - 6.5. (Optional: Luca Cardelli, "Type Systems" (PS, PDF), Sections 1,2 and 4)

WA 4
PA 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

Simple Code Generation (6up PDF) (2up PDF)

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 Operational Semantics (6up PDF) (2up PDF)

Cool manual.

 

 

17

Mar 16

Intermediate Languages (6up PDF) (2up PDF)

9.4,9.9,10.1-10.5

WA 7
PA 5

 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

Register Allocation (6up PDF) (2up PDF)

9.7

WA 9

WA 8

13

 

Apr. 11

Midterm II

 

 

 

22

Apr. 13

Instruction Scheduling (6up PDF) (2up PDF)

9.1

 

 

14

23

Apr. 18

Compiling Exceptions (6up PDF) (2up PDF)

 

 PA 6

 PA 5

24

Apr. 20

Compiling Higher-Order Features (6up PDF) (2up PDF)

 

WA 10

 WA 9

15

25

Apr. 25

Compiling Polymorhism (6up PDF) (2up PDF)

 

 

 

26

Apr. 27

Garbage Collection (6up PDF) (2up PDF)

 

WA 11

WA 10

16

27

May 2

Language Security (6up PDF) (2up PDF)

Smashing the Stack for Fun and Profit;

 

 

 

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.