CS362 2011F Compilers

Course Schedule

This handout is also available in PDF.

This is an abbreviated course schedule. Like everything else in this course, it is likely to change.

Weeks: 1, 2, 3, 4, 5, 6, 7, break, 8, 9, 10, 11, 12, 13, 14.

  Date Topic Reading Lab Work Due
Week 1
01 Friday, 26 August 2011 An Introduction to The Course      
02 Monday, 29 August 2011 Detour: A Quick Introduction to Pascal Skim The Programming Language Pascal: 1973 revised edition   Introductory Survey  
03 Wednesday, 31 August 2011 Parameter-Passing Strategies Aho et al., Chapter 1    
04 Friday, 2 September 2011 Exploring Compilation Aho et al., Chapter 2 Exploring Compilation  
Week 2
05 Monday, 5 September 2011 Lexical Analysis Aho et al., 3.1-3.2   Lab: Exploring Compilation  
06 Wednesday, 7 September 2011 A Hand-Coded Lexical Analyzer      
07 Friday, 9 September 2011 Regular Expressions Aho et al., 3.3-3.4 Regular Expressions  
Week 3
08 Monday, 12 September 2011 Finite Automata Aho et al., 3.6    
09 Wednesday, 14 September 2011 From Specification to Optimal DFA (1) Aho et al., 3.7   Tokenizing Pascal  
10 Friday, 16 September 2011 From Specification to Optimal DFA (2)      
Week 4
11 Monday, 19 September 2011 Lex and Flex Aho et al., 3.5, 3.8 Lex and Flex  
12 Wednesday, 21 September 2011 Cancelled      
13 Friday, 23 September 2011 Yacc and Bison (1) Aho et al., Chapter 4.9 Yacc and Bison (1)  
Week 5
14 Monday, 26 September 2011 Introduction to Grammars and Parsing Aho et al., 4.1-4.2   Project, Phase 1: Lexer  
15 Wednesday, 28 September 2011 Parsing Expressions Aho et al., 4.3    
16 Friday, 30 September 2011 Disambiguating the Expression Grammar      
Week 6
17 Monday, 3 October 2011 Predictive Parsing (1) Aho et al. 4.4   Lab: Yacc/Bison  
18 Wednesday, 5 October 2011 Predictive Parsing (2)      
19 Friday, 7 October 2011 Pause for Breath      
Week 7
20 Monday, 10 October 2011 Predictive Parsing (3)      
21 Wednesday, 12 October 2011 Shift-Reduce Parsing (1) Aho et al. 4.5    
22 Friday, 14 October 2011 Shift-Reduce Parsing (2)      
Fall Break!
Week 8
23 Monday, 24 October 2011 Shift-Reduce Parsing (3)      
24 Wednesday, 26 October 2011 Mid-Semester Examination      
25 Friday, 28 October 2011 Semantic Actions Aho et al., 5.1-5.2   Project, Phase 2: Parser  
Week 9
26 Monday, 31 October 2011 Type Checking (1) Introduction Aho et al, 6.3, 6.6    
27 Wednesday, 2 November 2011 Type Checking (2) Type Equivalence      
28 Friday, 4 November 2011 Midsemester Examination, Revisited      
Week 10
29 Monday, 7 November 2011 Type Checking (3) Wrapup     Project, Phase 3: Symbol Table  
30 Wednesday, 9 November 2011 Stack Frames (1) Aho et al. 7.1-7.3    
31 Friday, 11 November 2011 Stack Frames (2)      
Week 11
32 Monday, 14 November 2011 Detour: Experimenting, Testing, and Debugging      
33 Wednesday, 16 November 2011 A Simple Three-Address Code Representation Introduction to SSTAC An Introduction to SSTAC  
34 Friday, 18 November 2011 Translating Declarations and Expressions      
Week 12
35 Monday, 21 November 2011 Translating Conditionals (1)      
36 Wednesday, 23 November 2011 Translating Conditionals (2)     Project, Phase 4: Type Checking  
Week 13
37 Monday, 28 November 2011 Translating Loops      
38 Wednesday, 30 November 2011 Translating Procedure Calls     Project, Phase 5: Simple Code Generation  
39 Friday, 2 December 2011 The Run-Time Stack Aho et al. 8.0-8.3    
Week 14
40 Monday, 5 December 2011 Code Generation Aho et al. 8.4    
41 Wednesday, 7 December 2011 Basic Blocks and Flow Graphs Aho et al. 8.5-8.8   Project, Phase 6: Control Structures  
42 Friday, 9 December 2011 Register Allocation Aho et al. 8.9-8.10    
Finals
  Wednesday, 14 Decemeber 2011       Project, Phase 7: Function and Procedure Calls
  Thursday, 15 December 2011       Final Examination (9:00 a.m.)

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Sun Nov 20 22:22:38 2011.
The source to the document was last modified on Sun Nov 20 22:22:14 2011.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS362/2011F/Handouts/schedule.html.

Samuel A. Rebelsky, rebelsky@grinnell.edu