Lectures and Assignments (subject to change)

Instruction Assessment
Mon Wed Fri Project
  Jan 24
1. Introduction
Course overview
Jan 26
2. Lexical analysis 1
Overview
α language specification
Jan 29
3. Lexical analysis 2
RegEx to NFA
Jan 31
4. Lexical analysis 3
NFA to Min DFA
Feb 02
5. Syntactic analysis 1
Overview
Sprint1
Feb 05
6. Syntactic analysis 2
Derivations, trees, ambiguity
Feb 07
7. Syntactic analysis 3
Top-down/predictive parsing
Feb 09
8. Syntactic analysis 4
Pred. parsing, error recovery
Feb 12
9. Syntactic analysis 5
Bottom-up: intro
Feb 14
10. Syntactic analysis 6
LR(0) automaton construction
Feb 16
11. Syntactic analysis 7
Bottom-up: SLR parsing table
Feb 19
12. Syntactic analysis 8
Bottom-up: continued
Feb 21
13. PR02 hints and advice
Feb 23
14. Semantics 1
Overview
Sprint2
Feb 26
15. PR02 discussion
Syntax Directed Translation 1
Feb 28
16. Semantics 3
Syntax Directed Translation 2
Mar 01
17. Semantics 4
Syntax Directed Translation 3
Mar 04
18. Intermediate Representation 1
Overview
Mar 06
19. Workshop day
(no slides, no recording)
Mar 08
20. Intermediate Representation 2
Options
Mar 11
21. IR Generation 1
Boolean expressions & control flow
backpatching introduction
Mar 13
22. IR Generation 2
if, while
Mar 15
23. Workshop day
(no slides, no recording)
Sprint3
SPRING BREAK
Mar 25
24. IR Generation 3
for, switch
Mar 27
25. IR Generation 4
function calls
Memory layout
Mar 29
26. Workshop day (no slides, no recording)
Apr 01
27. IR Generation 5
Memory layout
Calling Sequence
Apr 03
28. Code Generation 1
Flow graph and basic blocks
Apr 05
29. Workshop day (no slides, no recording)
Apr 08
30. NO CLASS
Eclipse day!
Apr 10
31. Code Generation 2
Liveness, Next use, Register allocation and assignment
Apr 12
32. Code Generation 3
Register allocation and assignment
Sprint4
Apr 15
33. gcc assembly output, x86-64 assembly, as, ld
x86-64 project guide
(no slides)

as x86-64 ASCII Matt Godbolt's compiler explorer x86-64 project guide
Apr 17
34. Optimization 1
Apr 19
35. Workshop day (no slides, no recording)
Apr 22
36. Optimization 2
Simple Optimizations
Apr 24
37. Optimization 3
Supporting Analysis
Apr 26
38. Workshop day (no slides, no recording)
Apr 29
39. In-class team presentations/demos
Team 3
Team 5
May 01
39. In-class team presentations/demos
Team 6
Team 2
May 03
39. In-class team presentations/demos
Team 4
Team 1
Presentations
May 06
42. Review for final