Projects


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

Correctness

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 Java programs (ie, .java files) and the notes.txt file. 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.