Video Slides

Here you can download the original and annotated slides for each video.

I. Introduction Original Annotated
Introduction Original slides Annotated slides
Structure of a Compiler Original slides Annotated slides
The Economy of Programming Languages Original slides Annotated slides

II. The Cool Programming Language Original Annotated
Cool Overview Original slides Annotated slides
Cool Example II
Cool Example III

III. Lexical Analysis Original Annotated
Lexical Analysis Original slides Annotated slides
Lexical Analysis Examples Original slides Annotated slides
Regular Languages Original slides Annotated slides
Formal Languages Original slides Annotated slides
Lexical Specifications Original slides Annotated slides

IV. Finite Automata Original Annotated
Lexical Specification Original slides Annotated slides
Finite Automata Original slides Annotated slides
Regular Expressions to NFAs Original slides Annotated slides
NFA to DFA Original slides Annotated slides
Implementing Finite Automata Original slides Annotated slides

V. Parsing Original Annotated
Introduction to Parsing Original slides Annotated slides
Context-Free Grammars Original slides Annotated slides
Derivations Original slides Annotated slides
Ambiguity Original slides Annotated slides

VI. Top-Down Parsing Original Annotated
Error Handling Original slides Annotated slides
Abstract Syntax Trees Original slides Annotated slides
Recursive Descent Parsing Original slides Annotated slides
Recursive Descent Algorithm Original slides Annotated slides
Left Recursion Original slides Annotated slides

VII. Bottom-Up Parsing I Original Annotated
Predictive Parsing Original slides Annotated slides
First Sets Original slides Annotated slides
Follow Sets Original slides Annotated slides
LL(1) Parsing Tables Original slides Annotated slides
Bottom-Up Parsing Original slides Annotated slides
Shift-Reduce Parsing Original slides Annotated slides

VIII. Bottom-Up Parsing II Original Annotated
Handles Original slides Annotated slides
Recognizing Handles Original slides Annotated slides
Recognizing Viable Prefixes Original slides Annotated slides
Valid Items Original slides Annotated slides
SLR Parsing Original slides Annotated slides
SLR Parsing Example Original slides Annotated slides
SLR Improvements Original slides Annotated slides
SLR Examples Original slides Annotated slides

IX. Semantic Analysis and Type Checking Original Annotated
Introduction to Semantic Analysis Original slides Annotated slides
Scope Original slides Annotated slides
Symbol Tables Original slides Annotated slides
Types Original slides Annotated slides
Type Checking Original slides Annotated slides
Type Environments Original slides Annotated slides
Subtyping Original slides Annotated slides
Typing Methods Original slides Annotated slides *
Implementing Type Checking Original slides Annotated slides
*Annotated slides 1–4 have been misplaced. Our apologies.

X. Cool Type Checking Original Annotated
Static vs. Dynamic Typing Original slides Annotated slides
Self Type Original slides Annotated slides
Self Type Operations Original slides Annotated slides
Self Type Usage Original slides Annotated slides
Self Type Checking Original slides Annotated slides
Error Recovery Original slides Annotated slides

XI. Runtime Organization Original Annotated
Runtime Organization Original slides Annotated slides
Activations Original slides Annotated slides
Activation Records Original slides Annotated slides
Globals & Heap Original slides Annotated slides
Alignment Original slides Annotated slides
Stack Machines Original slides Annotated slides

XII. Code Generation Original Annotated
Introduction to Code Generation Original slides Annotated slides
Code Generation I Original slides Annotated slides
Code Generation II Original slides Annotated slides
Code Generation Example Original slides Annotated slides
Temporaries Original slides Annotated slides
Object Layout Original slides Annotated slides

XIII. Operational Semantics Original Annotated
Semantics Overview Original slides Annotated slides
Operational Semantics Original slides Annotated slides
Cool Semantics I Original slides Annotated slides
Cool Semantics II Original slides Annotated slides

XIV. Local Optimization Original Annotated
Intermediate Code Original slides Annotated slides
Optimization Overview Original slides Annotated slides
Local Optimization Original slides Annotated slides
Peephole Optimization Original slides Annotated slides

XV. Global Optimization Original Annotated
Dataflow Analysis Original slides Annotated slides
Constant Propagation Original slides Annotated slides
Analysis of Loops Original slides Annotated slides
Orderings Original slides Annotated slides
Liveness Analysis Original slides Annotated slides

XVI. Register Allocation Original Annotated
Register Allocation Original slides Annotated slides
Graph Coloring Original slides Annotated slides
Spilling Original slides Annotated slides
Managing Caches Original slides Annotated slides

XVII. Garbage Collection Original Annotated
Automatic Memory Management Original slides Annotated slides
Mark and Sweep Original slides Annotated slides
Stop and Copy Original slides Annotated slides
Conservative Collection Original slides Annotated slides
Reference Counting Original slides Annotated slides

XVIII. Java Original Annotated
Java Original slides Annotated slides
Java Arrays Original slides Annotated slides
Java Exceptions Original slides Annotated slides
Java Interfaces Original slides Annotated slides
Java Coercions Original slides Annotated slides
Java Threads Original slides Annotated slides
Other Topics Original slides Annotated slides