Lectures and Assignments (tentative and subject to change)

Instruction Assessment
Mon Wed Fri Project
  Jan 22
1. Introduction
Course overview
Jan 24
2. Overview (continued)
α language specification
Jan 27
3. Lexical analysis 1
Languages and Grammars
Jan 29
4. Lexical analysis 2
RegEx to NFA
Jan 31
5. NFA to Min DFA
Syntactic analysis 1
Overview
Sprint1
Feb 03
6. Syntactic analysis 2
Derivations, trees, ambiguity
Feb 05
7. Syntactic analysis 3
Top-down/predictive parsing
Feb 07
8. Syntactic analysis 4
Building parser control table
Feb 10
9. Syntactic analysis 5
Using parser control table
Error recovery
Feb 12
10. Syntactic analysis 6
Bottom-up: intro
Feb 14
11. Syntactic analysis 7
LR(0) automaton construction
Feb 17
12. Syntactic analysis 8
Bottom-up: SLR parsing table
Feb 19
13. Sprint 2 hints and advice
Feb 21
14. Semantics 1
Overview
Sprint2
Feb 24
15. PR02 discussion
Syntax Directed Translation 1
Feb 26
16. Semantics 3
Syntax Directed Translation 2
Feb 28
17. Semantics 4
Syntax Directed Translation 3
Mar 03
18. Intermediate Representation 1
Overview
Mar 05
19. Workshop day
(no slides, no recording)
Mar 07
20. Intermediate Representation 2
Options
Mar 10
21. IR Generation 1
Boolean expressions & control flow
backpatching introduction
Mar 12
22. IR Generation 2
if, while
Mar 14
23. Workshop day
(no slides, no recording)
Sprint3
SPRING BREAK
Mar 24
24. IR Generation 3
for, switch
Mar 26
25. IR Generation 4
function calls
Memory layout
Mar 28
26. Workshop day (no slides, no recording)
Mar 31
27. IR Generation 5
Memory layout
Calling Sequence
Apr 02
28. Code Generation 1
Flow graph and basic blocks
Apr 04
29. Workshop day (no slides, no recording)
Apr 07
30. NO CLASS
Eclipse day!
Apr 09
31. Code Generation 2
Liveness, Next use, Register allocation and assignment
Apr 11
32. Code Generation 3
Register allocation and assignment
Sprint4
Apr 14
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 16
34. Optimization 1
Apr 18
35. Workshop day (no slides, no recording)
Apr 21
36. Optimization 2
Simple Optimizations
Apr 23
37. Optimization 3
Supporting Analysis
Apr 25
38. Workshop day (no slides, no recording)
Apr 28
39. In-class team presentations/demos
Team 1
Team 2
Arl 30
39. In-class team presentations/demos
Team 3
Team 4
May 02
39. In-class team presentations/demos
Team 5
Team 6
Presentations
May 05
42. Review for final exam