Compiler Development

Spring 2019 Course Schedule

Two books will be used as reading resources: (1) Compiler Design: Theory, Tools, and Examples, abbreviated as "CD:TTE" in the schedule below; and (2) Basics of Compiler Design, abbreviated as "BCD" in the schedule below.
Week Number (Week of...) Topic, Slides Reading/Activity
1 (January 14) Syllabus, Overview of Compiler Development: Slides BCD 1.1-1.5
2 (January 21) Case Studies, Grammar/RE Overview: Slides CD:TTE 2.0, 2.1. Lab 0 given
3 (January 28) Lexical Analysis Slides BCB 2.1-2.9. Lab 0 due, Lab 1 given
4 (February 4) Lexical Analysis: JFlex Slides, Conversion Algorithms Slides
5 (February 11) Syntax Analysis Slides BCB 3.1-3.5. Lab 1 Peer Code Review. Quiz 1 on February 12
6 (February 18) Syntax Analysis Slides Lab 1 due. Lab 2 given.
7 (February 25) No Classes, Parsing Tool Exercises CD:TTE 4.1-4.3, 5.1-5.2
8 (March 4) Parsing Slides Presentations on Thursday, March 7
9 (March 11) Semantic Analysis Slides, Type Checking Slides BCB: Chapter 4 and Chapter 6
10 (March 18) No classes SPRING BREAK
11 (March 25) Intermediate Representation Slides Quiz 2 on March 26. Lab 2 due. BCB: Chapter 7.
12 (April 1) Gode Generation Slides, ARM Slides Lab 3 given. BCB: Chapter 8
13 (April 8) Code Generation Slides Introduction to ARM Tutorial, Parts 1-3
14 (April 15) Optimization Slides Peer Review, project progress report due on April 16.
Quiz 3 on April 18. BCB: Chapter 11
15 (April 22) Project Presentations on April 23. Lab 3 due, compiler demonstrations on April 25.
16 (April 29) Review Project due