COMP 506: Compiler Construction, Graduate Edition
Zoran Budimlić
Department of Computer Science
Rice University
Houston, Texas, USA
Spring 2019: Keck 102, Tuesday & Thursday, 9:25 AM
Office Hours: Duncan Hall 3134, Tuesday 11AM-12noon, Thursday 2PM-3PM
Course Syllabus



COMP 506 examines a variety of topics in the design and implementation of a programming language translator, with a specific emphasis on the construction of compilers. COMP 506 is explicitly a graduate course; the students are assumed to have a background in Computer Science.

The course will use material from Engineering a Compiler, 2nd Edition, or, see here. Students who do not already have a copy of EaC2e should be able to use the copies on reserve for the class in Fondren Library.

COMP 506 was designed to meet specific needs of new graduate students. It does not substitute for COMP 412 in the undergraduate curriculum. A student cannot take both COMP 412 and COMP 506 for credit.

Lecture notes are posted online, typically before class. The lecture notes often have material beyond what is covered in the lecture.

Time permitting, the course will have three programming assignments. Over the course of the semester, students will implement several components of a compiler. The first assignment is a scanner and parser for a simple language that we will call Demo. In the second assignment, students will add semantic elaboration routines that generate simple intermediate code for Demo programs. In the final assignment, students will optimize the code produced by their Demo compilers.

The course will have a midterm and a final. The exams will be closed-notes, closed-book exams of roughly two hours duration.

Both exams will be scheduled exams. More information will be available once the semester begins.

This site is maintained by Zoran Budimlić.