ECE 46800: Lecture Schedule


 

Lecture
Number

Date

Title

Material covered

Lecture
notes

1

8/22-8/24

What is a compiler?

Structure of a compiler (introduction and overview)

Lecture Notes #1

2

8/24-8/26

Scanners and Finite Automata

Scanning

Lecture Notes #2

3

8/29-9/7

Parsers and Context-free Grammars

Parsing (recursive descendent, overview of shift-reduce)

Lecture Notes #3

4

9/9-9/12

Semantic actions for declarations and expressions

Semantic routines (building a symbolic table and AST)

Lecture Notes #4

5

9/14

Semantic actions for control structures

Semantic routines (for control structures)

Lecture Notes #5

6

9/14-9/16

Functions

Semantic routines (for functions)

Lecture Notes #6

7

9/19-9/21

Code Generation and Local Optimization

Instruction selection, peephole optimization, common subexpression elimination, register allocation

Lecture Notes #7

8

9/23-9/26

Global Register Allocation

Register coloring, spilling, register coalescing

Lecture Notes #8 (courtesy Andrew Myers)

9

9/30

Instruction Scheduling

Data dependence graph, reservation table, height-based list scheduling

Lecture Notes #9

10

10/3

Control Flow Graphs

Control flow graph, basic block

Lecture Notes #10

11

10/5-10/7

Dataflow Analysis

Dataflow analysis

Lecture Notes #11

12

10/7-10/14

Lattice Theory

Partially ordered set, least fixpoint, fixpoint theorem, lattice

Lecture Notes #12

13

10/17-10/24

More Data Flow Analysis

Liveness analysis, reaching-def analysis, available expression analysis, very busy expression analysis

Lecture Notes #13

14

10/26-11/4

Loop Optimizations

Code motion, strength reduction, loop unrolling, loop fusion, loop interchange, loop tiling

Lecture Notes #14

15

11/7-11/14

Dependence Analysis

Dependence analysis, optimistic parallelization

Lecture Notes #15

16

11/16-12/2

Points-to Analysis

Flow-sensitive points-to analysis, flow-insensitive points-to analysis, Anderson’s algorithm, Steensgaard’s algorithm

Lecture Notes #16

17

12/5

Information Flow

Type checking, Security properties, security policies, information flow control

Lecture Notes #17