| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| compilers-1 | Introduction
|
| compilers-1-exercises.zip | 28m | ||
| tiny-1 | Compiling a Simple Language
|
| tiny-1-exercises.zip | compilers-1 | 20m |
| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| lex-1 | Lexical Analysis I
| compilers-1 | 32m | |||
| lex-2 | Lexical Analysis II-
Finite State Machines
| x86-2-exercises.zip | lex-1 | 26m | ||
| lex-3 | Lexical Analysis III -
From REs to DFAs
| x86-3-exercises.zip | lex2-2 | 21m |
| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| grammars-1 | Formal Grammars
| ast-1-exercises.zip | misc-1 | 20m | ||
| parse-1 | Parsing I -
Grammars
| cfg-1-exercises.zip | misc-1, x86-2 | 24m | ||
| parse-2 | Parsing 2-
Top-Down Parsing
| file-1-exercises.zip | 12m | |||
| parse-3 | Parsing 3-
Predictive Parsing
| disass-1-exercises.zip | x86-2, cfg-1 | 25m | ||
| parse-4 | Parsing 4-
Tying it all Together
| disass-1-exercises.zip | x86-2, cfg-1 | 25m |
| # | Topic | Video | Slides | In-class Exercises | Prereq- uisite | Video Length |
|---|---|---|---|---|---|---|
| sem-1 | Semantic Analysis 1
| gdb-1-exercises.zip | x86-2, ghidra-3 | 29m | ||
| sem-2 | Semantic Analysis 2— Declarations
| trace-1-exercises.zip | opaque-1 | 22m | ||
| sem-3 | Semantic Analysis 3—Type Checking
| symex-1-exercises.zip | ast-1, softprot-1, x86-1 | 25m | ||
| sem-4 | Semantic Analysis 4—Wrapping Up
| symex-2-exercises.zip | symex-1 | 8m |
| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| ghidra-1 | Intermediate Code 1
| ghidra-1-exercises.zip | x86-2, cfg-1 | 19m | ||
| interm-2 | Intermediate Code 2
–Control Flow
| ghidra-2-exercises.zip | ghidra-1 | 18m | ||
| interp-1 | Interpretation
| ghidra-3-exercises.zip | ghidra-1 | 19m | ||
| javavm-1 | Java Bytecosde
| ghidra-4-exercises.zip | ghidra-3 | 21m |
| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| codgen-1 | Code Generation 1
| virt-1-exercises.zip | cfg-1 | 16m | ||
| codegen-2 | Code Generation 2
| virt-2-exercises.zip | virt-1 | 28m | ||
| proc-1 | Procedures 1
| checksum-1-exercises.zip | 24m | |||
| proc-2 | Procedures 2
| arith-1-exercises.zip | ast-1 | 22m |
| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| opt-1 | Optimization 1
|
| compilers-1-exercises.pdf | 28m | ||
| opt-2 | Optimization 2 |
| tiny-1-exercises.pdf | compilers-1 | 20m |
| # | Topic | Video | Slides | In-class Exercises |
Prereq- uisite |
Video Length |
|---|---|---|---|---|---|---|
| gc-1 | Garbage Collection 1
|
| 28m | |||
| gc-2 | Gaarbage Collection 2 | models-1-exercises.pdf | compilers-1 | 20m | ||
| oo-1 | Object Oriented languages 1 | models-1-exercises.pdf | compilers-1 | 20m | ||
| oo-2 | Object Oriented Languages 2 | models-1-exercises.pdf | compilers-1 | 20m |