0. Slay the Dragon
1. Read and write grammars for programming language constructs
2. Perform lexical analysis and use lexical analyzer generators
3. Perform top-down parsing, bottom-up parsing and use parser generators
4. Perform semantic analysis including static checking, intermediate representations and attribute grammars
5. Create symbol tables
6. Perform run-time analysis
7. Perform code generation
8. Perform optimizations
9. Implement the phases of a compiler for a small recursive language
Midterm Exam: 30 points
Final Exam; 25 points
Week 2 (9/11)
Module 2: Grammars and Parsing
Week 3 (9/18)
Module 3: Bottom-Up Parsing
Week 7 (10/16)
Module 7: Control Flow Analysis
Week 10 (11/6)
Module 9: Optimization
Week 12 (11/20)
Code Generators Due: Project Presentations & Review
Week 1 (9/4)
Module 1: Overview, Grammars & Lexical Analysis
Thursday, 9/11: Scanners Due
Thursday, 9/18: Parsers Due
Week 4 (9/25) Module 4: Semantic Analysis
Week 5 (10/2)
Module 5: Symbol Tables and Run-time
Issues
Thursday, 10/2: AST's Due
Week 6 (10/9)
Module 6: Code Generation
Thursday, 10/16: Symbol Tables Due
Week 8 (10/23)
Midterm
Week 9 (10/30)
Module 8: Data Flow Analysis
Week 11 (11/13)
TBA
Week 13 (11/27)
No Class: Thanksgiving
Week 14 (12/4)
Final Exam
Week 15 (12/11)
Snow Date