ScheduleΒΆ

  • The schedule may change as the course progresses, in part based on student interests. If you are particularly interested in some topic not covered here, email to the course instructor.

  • Lecture slides can be found at BlackBoard.

  • Submit your programming assignments via BlackBoard.

  • Post your questions on Piazza.

Monday Tuesday Wednesday Thursday Friday
Aug 23
LEC 1: Introduction
LEC 2: Compiler Overview
Classes Begin
Aug 24 Aug 25 Aug 26 Aug 27
DUE: PA0 Install USCC
Aug 30
LEC 3: Syntatic analysis
LEC 4: Recursive descent parsing
Aug 31 Sep 1 Sep 2 Sep 3
Sep 6
Labor Day
Sep 7 Sep 8 Sep 9 Sep 10
Sep 13
LEC 5: Semantic analysis
LEC 6: Intermediate representation
Sep 14 Sep 15 Sep 16 Sep 17
DUE: PA1 Recursive descent parsing
Sep 20
LEC 7: LLVM overview
LEC 8: Control flow analysis
Sep 21 Sep 22 Sep 23 Sep 24
Sep 27
LEC 9: Superblock
Sep 28 Sep 29 Sep 30 Oct 1
Oct 4
LEC 10: SSA
LEC 11: SSA optimization
Oct 5 Oct 6 Oct 7 Oct 8
Oct 11
Fall Break
Oct 12
Fall Break
Oct 13 Oct 14 Oct 15
DUE: PA2 Semantic analysis
Oct 18
Midterm Exam
Oct 19 Oct 20 Oct 21 Oct 22
Oct 25
LEC 12: Control dependence
LEC 13: Dataflow analysis
Oct 26 Oct 27 Oct 28 Oct 29
DUE: PA3 IR lowering
Nov 1
LEC 14: Dataflow analysis 2
Nov 2 Nov 3 Nov 4 Nov 5
Nov 8
LEC 15: DFA theory
LEC 16: DFA theory 2
Nov 9 Nov 10 Nov 11 Nov 12
Nov 15
LEC 17: Def-use chain
LEC 18: Optimization
LEC 19: LICM
Nov 16 Nov 17 Nov 18 Nov 19
DUE: PA4 SSA
Nov 22
LEC 20: Pointer analysis intro
LEC 21: Pointer analysis flow-insensitive
LEC 22: Pointer analysis implmentation
Nov 23 Nov 24
Thanksgiving Break
Nov 25
Thanksgiving Break
Nov 26
Thanksgiving Break
Nov 29
LEC 23: Register allocation
LEC 24: Instruction selection
Nov 30 Dec 1 Dec 2 Dec 3
Dec 6
LEC 25: Instruction scheduling
LEC 26: Global instruction selection
Classes End
Dec 7
DUE: PA5 Optimization
Dec 8 Dec 9 Dec 10
Dec 13
Final Exam (5:30 PM - 7:00 PM, Frey 205)
Dec 14 Dec 15 Dec 16 Dec 17