COMP 412
: Compiler Construction for Undergraduates
Keith Cooper
Linda Torczon
Department of Computer Science
Rice University
Houston, Texas, USA
Fall 2016: Room 301, Sewall Hall Monday, Wednesday, Friday, 11:00am
Notes
MidTerm Exam
A
syllabus for the midterm exam
is now available.
A
practice exam
for the midterm exam is now available.
Slides and/or Notes
Introduction to the Course
The Compiler's Front End
(a lab 1 perspecitive)
Local Register Allocation
(a lab 1 perspective)
Lab 1: Tutorial 1 Notes
The ILOC Virtual Machine
(more Lab 1 help)
Lab 1: Tutorial 2 Notes
<== NEW
Lexical Analysis, Part I
(Chapter 2 in EaC2e)
Lexical Analysis, Part II
, NFAs and Thompson's Construction
Lexical Analysis, Part III
, the Subset Construction and Brzozowski's Algorithm for DFA Minimization
Lexical Analysis, Part IV
, Hopcroft's Algorithm for DFA Minimization
Revised section on Hopcroft's algorithm
from EaC3e
Lexical Analysis, Part V
, Implementing Scanners from DFAs
(not presented; here for reference)
Syntax Analysis I
(Chapter 3 in EaC2e)
Syntax Analysis II
Syntax Analysis III
Syntax Analysis IV
First Sets, Follow Sets, and LL(1) table
Corrected
Syntax Analysis V
Start of Bottomup Parsing (Handles)
Syntax Analysis VI
Syntax Analysis VII
LR(1) table construction
Syntax Analysis VIII
Lab 2: Tutorial Notes
Intermediate Representations, I
(Chapter 5 in EaC2e)
Intermediate Representations, II
SyntaxDirected Translation, I
(Chapter 4 in EaC2e)
SyntaxDirected Translation, II

Code Generation Preliminaries, I
Paper mentioned in class and lecture notes:
Robert Floyd, "An Algorithm for Coding Efficient Arithmetic Operations," CACM 4(1), January 1961, pages 4251.
Code Generation Preliminaries, II
Assignment and Memory Management
You are responsible for material above this line on the midterm exam
Material below this line is covered on the final exam
Array & Structure Address Calculations
Function & Procedure Calls
Additional Materials
Notes on Garbage Collection in Java
It is hard to understand your Java lab's performance without understanding garbage collection and its impact on running times.
The Software Stack
What happens to code after compilation?
Syllabus
Fall 2016 Syllabus
Comp 412 Home
Last modified Wednesday, 19Oct2016 08:17:44 CDT.