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