CS 412/413
Introduction to Compilers

Schedule

Lecture
Date
Topic
Readings
(D = Dragon, A = Appel,
TC=Cooper/Torczon)
Assignments
Out Due
1 Jan 23  Course Overview      
2 25  Regular Expressions D 3.3, A 2.1-2 hw1  
3 27  Finite Automata D 3.6-7, A 2.3-4    
4 30  Lexical Analyzers D3.8 pa1  
5 Feb 1  Grammars D4.2, A3.1    
6  3  Top-Down Parsing D4.3-4, A3.2   hw1
7 6

 LL Parsing Tables

D4.3-4, A3.2 hw2  
8 8  Bottom-Up Parsing D4.5-7, A3.3 pa2 pa1
9 10  LR, SLR, and LALR D4.7, A3.3    
10 13  AST Construction D4.8-9, A3.4, A4    
11 15  Symbol Tables D7.6, A5.1    
12 17  Types D6.1-2, A5.2    
13 20  Visitors, Typing Rules D6.1-2, A4.3,5.2   hw2
14 22  Objects A14 hw3  
15 24  Subtyping      
16 27  Intermediate Representation D8.1    
17 Mar 1  IR Lowering D8.4-6   pa2
18 3  Activation Records D7.2-4, A6 pa3  
19 6  X86 Code Generation      
8  Prelim 1 review
9  Prelim 1. HO 110, 7:30-9:30 pm, closed book.
20 13  Implementing Objects     hw3
21 15  Introduction to Optimizations D10.2    
22 17  Control-Flow Graphs      

Spring Break

23 27  Live Variable Analysis D10.6, A10    
24 29  Dataflow Analysis Frameworks D10.11    
25 31  More Dataflow Frameworks D10.11 hw4 pa3
26 Apr 3  Standard Compiler Analyses D10.5-6, A17.2-3 pa4  
27 5  Control Flow Analysis D10.4, A18.1    
28 7  Loop Optimizations D10.7, A18.2-3    
29 10  Partial Redundancy Elimination TC10.3.2    
30 12  Static Single Assignment Form A19    
31 14  SSA, Instruction Selection D9.10, A19.3,A9    
32 17  Tiling Algorithms D9.11, A9.1 hw4  
33 19  Register Allocation TC13.3, D9.5-6 pa5 pa4
34 21  Graph Coloring RA A11, TC13.5    
35 24  Garbage Collection      
26  Prelim 2 review
27  Prelim 2. HO 110, 7:30-9:30 pm, closed book.
36 May 1  Linking and loading      
37 3  Memory management      
38 5  Shape Analysis     pa5
Final project demonstration