CSC488H: Schedule

Week Monday Wednesday Duedates
1 No tutorials this week Administrivia
Domain Specific Languages
2 Compiler Structure
Reading: Ch 1
Exercise: Specifying a Language
Scanner Starter (final)
Parser Starter (final)
Mini-Java CUP Example
By Friday: Team signups and proposals
3 Scanning
Reading: Ch 2
Workshop: Language Spec Feedback
Building a Compiler (Liut) -- draft
Lex Example (solution) Scanning test file
4 Parsing
Reading: Ch 3
Exercise: Parsing
Grammar Spec
Example Skeleton yacc
Calculator (flex) Calculator (yacc)
By Friday: Sprint 0 -- Language Specification (15%)
5 Parsing, continued
Reading: Ch 4
Workshop: Parsing Your Language
Building a Compiler (Liut) -- updated
6 Intermediate Forms
Reading: Ch 5
Exercise: Code Generation
AST Example
MiniJava Parser and Backend (zip)
By Friday: Sprint 1 -- Parser (10%)
7 Case: LLVM
Reading: LLVM Overview
Workshop: Generating Your Target Language
Reading week!
8 Registers
Reading: Ch 13 (skim only)
Exercise: Common Optimizations
For Reference: Ch 8 (Intro to optimization) and Ch 10 (Scalar Optimizations)
By Friday: Sprint 2 -- Backend (10%)
9 Intro to Analysis
Reading: Ch 9 (Dataflow Analysis)
Workshop: Feedback on Language Extension
10 Test Prep Term Test Wednesday: Term test (20%)
By Friday: Sprint 3 -- Extended type / data structure (10%)
11 No lecture Workshop: Preparing a demo
Slides
12 No lecture Project Demos Wednesday: Project demos (15%)
By Friday: Sprint 4 -- Optimization / Extension (20%)