Fall 2015
Class: Wednesdays and Fridays, 8:30-10:15am, SI-007
Instructor: Robert
Soulé
TA: Ilya Yanok
Office hours: By appointment
Exam: January 18, 2016 at 13:30 Room SI-006
This course focuses on the design and implementation of compilers. Topics covered include the structure of one-pass and multiple-pass compilers; symbol table management; lexical analysis; traditional and automated parsing techniques; syntax-directed translation and semantic analysis; run-time storage management; intermediate code generation; introduction to optimization; and code generation. This course requires a substantial, semester-long programming project implementing a functional compiler that includes lexical and syntactic analyzers, a type checker, and a code generator.
We rely on one textbook:
Additionally, a reference on Antlr may be useful, such as the following:
Please send class-related questions to the Discussions Forum on Moodle (unless, of course, they concern private rather than technical or organizational issues).
The final grades will be computed as 10% from homeworks, 30% from the project, 20% from the midterm exam, and 40% from the final exam.
The policy for late assignments is as follows:I encourage you to collaborate on homework assignments. But you must write up and turn in your own answers. Also, you must clearly indicate who you collaborated with. If I detect any incidents of cheating, I will report them immediately to the department, and the assignment will be given a grade of 0.
Students must write a review for each assigned paper (to make sure everyone keeps up with the readings). Each review should be about a paragraph long and discuss in the student's own words (1) the main idea(s) of each paper, (2) the student's main criticisms (regarding soundness, methodology, presentation, etc.), and (3) relevance to current systems or future research directions. David Wetherall at the University of Washington has written a great guide to reviewing papers.
Reviews are submitted by emailing them to the professor and the TA in plain-text format (with hard line breaks after each line). Paper reviews are due at 8am on the day of the corresponding class!
Please be sure to regularly check this page for updates.