Lecture Schedule

last update:
  • Lecture 1: What is a compiler?

    • Date: 820-824
    • Material Covered: Structure of a compiler (introduction and overview)
  • Lecture 2: Scanners and Finite Automata

    • Date: 824-831
    • Material Covered: Regular expressions, finite automata, scanner implementation
  • Lecture 3: Parser and Context-free Grammars

    • Date: 831-914
    • Material Covered: CFGs, parse trees, LL parsing and LR parsing
  • Lecture 4: Semantic actions for declarations and expressions

    • Date: 914-
    • Material Covered: Semantic routines (building a symbolic table and AST)
  • Lecture 5: Semantic actions for control structures

    • Date: 921-
    • Material Covered: Semantic routines (for control structures)
  • Lecture 6: Functions

    • Date: 926-928
    • Material Covered: Semantic routines (for functions)
  • Lecture 7: Code Generation and Local Optimization

    • Date: 101-105
    • Material Covered: Instruction selection, peephole optimization, common subexpression elimination, register allocation
  • Lecture 8: Global Register Allocation

    • Date: 1010-1012
    • Material Covered: Register coloring, spilling, register coalescing
  • Lecture 9: Instruction Scheduling

    • Date: 1012-1017
    • Material Covered: Data dependence graph, reservation table, height-based list scheduling
  • Lecture 10: Dataflow Analysis

    • Date: 1019-1022
    • Material Covered: Dataflow analysis, control flow graph, basic block, symbolic evaluation
  • Lecture 11: Lattice Theory

    • Date: 1024-1026
    • Material Covered: Partially ordered set, least fixpoint, fixpoint theorem, lattice
  • Lecture 12: More Dataflow Analysis

    • Date: 1029-115
    • Material Covered: Liveness analysis, reaching-def analysis, available expression analysis, very busy expression analysis
  • Lecture 13: Loop Optimization

    • Date: 117-1112
    • Material Covered: Code motion, strength reduction, loop unrolling, loop fusion, loop interchange, loop tiling
  • Lecture 14: Dependence Analysis

    • Date: 1112-
    • Material Covered: Dependence analysis, optimistic parallelization