CS451/651
Compilers
Home
Course Info
Calendar
Lecture Material
Assignments
Resources
Swami Iyer
·
CS
·
UMB
Lecture Material
Course Mechanics
(
slides
)
Programming Environment
(
slides
)
Chapter 1: Compilation
Preliminaries (
slides
|
exercises
)
Overview of
j--
to JVM Compiler (
slides
|
exercises
)
Overview of
iota
to Marvin Compiler (
slides
|
exercises
)
Chapter 2: Scanning
Preliminaries (
slides
|
exercises
)
Handcrafting a Scanner (
slides
|
exercises
)
Generating a Scanner (
slides
|
exercises
)
JavaCC Scanner for
j--
(
slides
|
exercises
)
Chapter 3: Parsing
Preliminaries (
slides
|
exercises
)
Top-down Recursive Descent Algorithm (
slides
|
exercises
)
Top-down LL(1) Algorithm (
slides
|
exercises
)
Bottom-up LR(1) Algorithm (
slides
|
exercises
)
JavaCC Parser for
j--
(
slides
|
exercises
)
Chapter 4: Type Checking
Preliminaries (
slides
|
exercises
)
Pre-analysis of
j--
Programs (
slides
|
exercises
)
Analysis of
j--
Programs (
slides
|
exercises
)
Chapter 5: JVM Code Generation
Preliminaries (
slides
|
exercises
)
Classes and their Members (
slides
|
exercises
)
Control, Message, Field Selection, and Array Access Expressions (
slides
|
exercises
)
Assignment, String Concatenation, Cast, and Other Operations (
slides
|
exercises
)
Chapter 6: Marvin Code Generation
Preliminaries (
slides
|
exercises
)
High-level Intermediate Representation (HIR) (
slides
|
exercises
)
Low-level Intermediate Representation (LIR) (
slides
|
exercises
)
Register Allocation (
slides
|
exercises
)