15-411 Compiler Design, Fall 2015


The labs are the heart of this course and count for 70% of your grade. Much of what you learn in this course will be through completing these labs. Labs can be done individually or in pairs.

Late policy for labs: All lab deadlines are at 11pm on the due date. You have a total of six (6) late days to use throughout the semester. Assuming a Tuesday deadline, any submission between 11pm Tuesday and 11pm Wednesday automatically consumes one late day. These late days can only be used for compiler deadlines: tests and papers must be turned in by 11pm on the due date for credit. You can use a maximum of two (2) late days each on labs 1 and 2. You can use a maximum of three (3) late days each on labs 3 and 4. You can use up to five (5) late days on labs 5 and 6 if you still have late days available.

  1. Straight-line code
    • Tests due Sep 15
    • Compiler due Sep 22
  2. Control
    • Tests due Sep 29
    • Compiler due Oct 6
  3. Functions
    • Tests due Oct 13
    • Compiler due Oct 20
  4. Memory
    • Tests due Oct 27
    • Compiler due Nov 3
  5. Optimization
    • Compiler due Nov 19
    • Papers due Nov 24
  6. Special Topics

Written Assignments

Written assignments are to be completed individually. They are handed in as PDFs through Autolab. We expect you to use word processing or typesetting software for your assignments where appropriate, but hand-drawn diagrams are acceptable if they are done neatly.

Late policy for individual written assignments: All written deadlines are at 11pm on the due date. You have a total of 3 late days for individual written assignments. Assuming a Thursday deadline, any submission between 11pm Thursday and 11pm Friday automatically consumes one late day. These late days can can be used in any combination, but after they are exhausted, no credit will be given.

  1. Backend, due Sep 17
  2. Frontend, due Oct 1
  3. Middle, due Oct 15
  4. Semantics, due Oct 29 (Tex) (homework.sty)

Paper Report

The paper report is due 11pm on Thursday, December 3. For the purposes of grading and late days, the paper report will be treated as another written assignment; it is an individual assignment worth 60 points.

The paper report is designed to resemble the 15-410 book report. The assignment is to read a single academic paper (8 or more pages in the two-column ACM format) about compiler optimizations (or compilers in general), and write a one-page essay (three pages max) that answers three questions:

  1. What was this paper about? What was the most surprising, interesting, or eye-opening material you found in what you read? If you want, you can fall back to summarizing everything you read, but I'd rather you focused on what was the most valuable to you.
  2. What do you imagine would be the challenges in implementing some or all of the ideas in this paper in your compiler as it currently exists?
  3. What would you want or need to change about C0 language in order to take advantage of the observations in this paper? Or, more generally, what if anything would have to be different about the specification of your compiler for this work to be applicable?

Your report should be an essay - it should have paragraphs and not bullet points, and you shouldn't directly repeat the questions in the course of answering them. Generally speaking, spending a couple sentences or a paragraph on each of the questions above should suffice.

You cannot pick the same paper as your project partner. This is because I hope you will discuss your paper with your project partner, and I want you to be able to do so without worrying about academic integrity issues.

Valid CSS! Valid XHTML 1.0 Strict