CS 412/413 Spring '01 Course Schedule

Lecture

Date

Topic

Slides

Due

Assignments & Reading

0 Jan 22 Questionnaire handout only (or just enter it online)     Questionnaire (Q)
1

24

Course overview     HW1: lexical analysis, Appel 1
2 26 Regular expressions   Q PA1: lexical analysis, Appel 2.1-2.2
3 29 Automating lexical analysis     Appel 2.3-2.5
4 31 Grammars and parsing   HW1 HW2: parsing, Appel 3.1
5 Feb 2 Top-down (LL) parsing     Appel 3.2
6 5 Bottom-up parsing     Appel 3.3
7 7 LR parsing   PA1 PA2: syntactic and semantic analysis, Appel 3.4
8 9 Parser generators and ASTs     Appel 4 (ADD DEADLINE)
9 12 Semantic analysis     Appel 5.1-2
10 14 Types   HW2 Appel 5.3
11 16 Static semantics     Appel 5.4
12 19 More static semantics     HW3: semantic analysis, Iota Static Semantics
13 21 Intermediate code      Appel 6, Appel 7.1-2
14 23 Syntax-directed translation   PA2 PA3: IR generation,  Appel 7.3
15 26 Canonical IR     Appel 8.1
16 28 Basic blocks, tiles     Appel 8.2
17

Mar 2

Code generation 1   HW3 Appel 9.1
5 Prelim 1 review, in class

6

Prelim 1, 7:30-9:30PM in Phillips 203. Covers material in lectures 1-15. Open book.

7

(no class)

18 9 Code generation 2     Appel 9.2-3  (DROP DEADLINE)
19 12 Modules and abstract data types   PA3 PA4: code generation
20 14 Objects     Appel 14.1-2
21 16 Objects: subtyping      

Spring Break

22 26 Objects: implementation     Appel 14.3-5
23 28 Multiple inheritance      
24 30 Introduction to optimization     HW4: objects and optimization, Muchnick 11
25 Apr 2 Live variable analysis     Appel 10
26 4 Register allocation   PA4 PA5: Iota+, Appel 11, 12 
27 6 Dataflow analysis     Appel 17, Muchnick 8.1, Muchnick 12, 13
28 9 Dataflow analysis frameworks     Muchnick 8.2-8.5
29 11 Control flow analysis     Appel 18, Muchnick 7.1-4, 14.1
30 13 Loop optimizations   HW4 Muchnick 17.1
31 16 Instruction scheduling     Muchnick 5.7
17

Prelim 2, 7:30-9:30PM, Olin 165. Emphasizes material in lectures 16-30. Open book.

18

(no class)

32 20 Alias analysis     Appel 17.5
33 23 Memory management     Appel 13
34 25 Linking and shared objects     PA6: register allocation, Levine
35 27 First-class functions   PA5 Appel 6, 15.1-2
36 30 Parametric polymorphism     Appel 15.3-15.6
37

May 2

Exceptions      
38

4

Dynamic types   PA6 Appel 16.1, 16.3-4

Final project demonstration: May 10,11, 1-4:30PM, Upson 317