Schedule

This is the website for 6.110 in Spring 2024 and is out of date. Make sure you are viewing the correct website for this semester.

Table of contents
  1. Calendar
  2. List of topics

Calendar

Google Calendar

The lectures and recitations are one hour long and take place at 32-124 at the following times:

  • At 11 a.m. on Mondays, Wednesdays, and Fridays.
  • At 12 p.m. (noon) on Tuesdays and Thursdays. (While these are listed officially as “recitations,” we treat them the same as lectures.)
  Monday Tuesday Wednesday Thursday Friday
02/05 - 02/09 First day of classes
L1: Intro, R0: Info
L2: Regex L2: Regex L3: Parsing Phase 1 released
R1: Phase 1
02/12 - 02/16 L4: IR   L5: Semantics
Re-lecture 1
  R2: Phase 1 demo
02/19 - 02/23 Presidents’ Day Holiday Monday schedule
L6: Codegen
L6: Codegen
Re-lecture 2
  Phase 1 due
Phase 2 released
R3: Phase 2
02/26 - 03/01     Team submission   R4: x86
03/04 - 03/08   L6: Codegen L6: Codegen
Re-lecture 3
L6: Codegen Add date
Phase 2 due
Phase 3 released
R5: Phase 3
03/11 - 03/15     Quiz 1 review   Quiz 1
03/18 - 03/22 L7: Optimization   L8: Dataflow L8: Dataflow R6: SSA
03/25 - 03/29 Spring Break Spring Break Spring Break Spring Break Spring Break
04/01 - 04/05 L9: Loop Opt   L10: Regalloc
Re-lecture 4
L11: Parallel Phase 3 due
Phase 4 released
R7: Phase 4
04/08 - 04/12 L12: Foundations L12: Foundations L12: Foundations CPW CPW
04/15 - 04/19 Patriots’ Day Holiday   Re-lecture 5   Phase 4 due
Phase 5 released
R8: Phase 5
04/22 - 04/26   Drop Date Re-lecture 6    
04/29 - 05/03     Quiz 2 review   Quiz 2
05/06 - 05/10          
05/13 - 05/17 Phase 5 due Last day of classes
Complier Derby
     

List of topics

  • Parsing
    • Regular expressions
    • Deterministic and non-deterministic finite automata
    • Context-free grammars
    • Parse trees
    • Recursive descent parser
    • Shift-reduce parsing
    • Parser construction
  • Intermediate representations
    • Object-oriented programming
    • Symbol tables
    • Semantic analysis
  • Unoptimized code generation
    • Control flow graph
    • Linearizing
    • Short circuiting
    • Assembly code
    • Procedure calls and stack management
    • Peephole optimizations
  • Program analysis and optimizations
    • Value numbering
    • Common sub-expression elimination
    • Copy propagation
    • Constant propagation
    • Dead code elimination
    • Strength reduction
    • Algebraic simplification
  • Register allocation
    • Def-use chains
    • Web-based register allocation
    • Interference graphs
    • Liveness analysis
    • Graph coloring with Chaitin’s Algorithm
    • Spilling and splitting
  • Parallelization
    • Data dependence analysis
    • Induction variables
  • Data-flow analysis foundations
    • Order theory and lattices
    • Fixed point iteration