There are 6 projects in all. These are due at midnight (11:59 PM to be precise) on the dates indicated on the Calendar page.

# Assignment
1 Supporting Simple Operations (writeup | zip)
2 Scanning (writeup | zip)
3 Parsing (writeup | zip)
4 Scanning and Parsing with JavaCC (writeup | zip)
5 Type Checking and Code Generation (writeup | zip)
6 Register Allocation (writeup | zip)

The writeup contains the project description along with directions on how to approach the problems. The zip file contains test programs, reference output files, and notes.txt file.

Grading Scheme


Your solution to each problem in a project will be evaluated by an autograder for correctness. Each test that is used to evaluate the correctness of your solution is worth some number of points; your solution will receive all the points from a test that passes and 0 points from a test that does not pass. Your overall correctness score will be normalized to 80 points.

Clarity and Efficiency

Your solutions will also be checked by a TA for clarity and efficiency. Your code will receive 10 points if it meets our expectations (must include adequate comments and must follow good programming principles), and marked down otherwise.

Notes File

The given notes.txt file must be uploaded with the three sections (#1 mandatory, #2 if applicable, and #3 optional) filled in as appropriate. Your notes file will receive 10 points if it meets our expectations (section #1 must provide a clear high-level description of the project in no more than 200 words), and marked down otherwise.

Submitting Your Work

You will use Gradescope to submit your work. Make sure that you only submit files listed under the “Files to Submit” section of the project writeup.

You may submit your files as many times as you like, up until the project deadline. The most recent submission is considered active by default and your score on the active submission is your official score for the project as well. You have the option of making any of your previous submissions active.

Note: If your active submission is partial, your project score will also be partial, so in order to be eligible for full credit, make sure you have an active submission containing all the required files for the project.

Late Days

Project deadlines are firm and non negotiable. However, you have up to 5 (10 if you have accommodations through the Ross Center) late days that you may use to submit one or more projects a bit late. You may use them all for a single project or spread them across the projects as you find necessary. If you need to use any of your available late days for a particular project, you must send me a request via email at least 48 hours prior to the project deadline, or else your request will not be granted.