| 
       Week beginning 
       | 
      
       Lectures
       | 
      
       Project
       | 
      
       Homeworks 
       | 
      
       P/S/O 
       | 
    
    
      |  January | 
      13 
       | 
       Introduction (1) | 
        | 
        | 
         | 
    
    
       
       | 
      20 
       | 
       Lexical analysis (2) 
       | 
       P1. Scanner (2) 
       | 
         | 
       Setting up your account  
       | 
    
    
      |   | 
      27 
       | 
       Parsing (3)  | 
        | 
        | 
        | 
    
    
      |  February | 
      3 
       | 
       Parsing (3); Abstract syntax (4) | 
       P2. Parser (3,4) | 
        | 
        
       | 
    
    
      |   | 
      10 
       | 
       Semantic analysis (5) | 
        | 
        | 
       
       | 
    
    
      |   | 
      17 
       | 
       Activation records
(6)  | 
        
       | 
        | 
        | 
    
    
      |   | 
      24 
       | 
       Translation to intermediate code (7)  | 
       P3a. Building AST(4)  | 
        | 
       
       | 
    
    
       March 
       | 
      3 
       | 
       Basic blocks and traces (8) 
       | 
        
       | 
        | 
        
       | 
    
    
      |   | 
      10 
       | 
       Instruction selection (9) 
       | 
        
       | 
        | 
        
       | 
    
    
      |   | 
      17 
       | 
       No class: Spring break 
        | 
        | 
        | 
        | 
    
    
      |   | 
      24 
       | 
       Liveness analysis (10)  | 
       P3b.Type checking  | 
        
       | 
       
       | 
    
    
      |   | 
      31 
       | 
       Register allocation (11)  | 
        
       | 
        | 
        
       | 
    
    
      |  April | 
      7 
       | 
       Putting it all together (12) 
       | 
        | 
        
       | 
       
       | 
    
    
      |   | 
      14 
       | 
       Garbage collection (Chap. 13, in part)  | 
        
       | 
        
       | 
        
       | 
    
    
      |   | 
      21 
       | 
       Object-oriented languages (Chap. 14, in part) 
       | 
       
       | 
        | 
       
       | 
    
    
      |   | 
      28 
       | 
       Polymorphic types (Chap 16, in part); Review 
       | 
       
       | 
        | 
       
       | 
    
    
      | May
       | 
      5 
       | 
       Final Exam 
       | 
       
       | 
       
       | 
       
       |