CSE 401 / M501 18au - Project Report

Due: Saturday, December 8 by 11:59 pm. No late reports will be accepted. You should "turn in" your report by pushing it to your project GitLab repository. See the end of this writeup for details.

CSE M 501 students should turn in this project report as part of their overall report discussing the basic compiler and the additional work they did for CSE M 501. That combined report has a different deadline -- see the CSE M 501 Project Extensions assignment for details.

Project Code

In fairness to everyone, all projects are due by the cutoff given in the final part of the assignment. Your report should describe the project that you turned in by the deadline (plus any late days if you and your partner had them available and used them). However, there is always that "last" bug. If you need to make minor changes to the code and discuss them in your report we may be able to take small bug fixes into account in evaluating the final state of the project - even if these fixes have major effects. But large changes or additions to the project after the deadline, while they may be very useful for your learning, cannot fairly be evaluated as if they were turned by the deadline. The overall project evaluation will be based on the code you turned in on time unless some small exceptions make sense to evaluate it fairly.

Report

Please write a brief (a couple of pages should be more than enough) summary of your completed project describing:

  • What language features work (arithmetic expressions, if/while, object creation, dynamic dispatch, arrays, doubles, etc.).
  • What language features weren't implemented, don't work, or don't quite work.
  • A summary of the test programs you've tried and the results. Note the word "summary" - a lengthy dump of your test results is not helpful. We want to get an idea of how extensively you tested your code and how you organized the testing.
  • Any extra features or language extensions supported by your compiler: additional Java language constructs not part of basic MiniJava; extra error or semantics checking; assembly code formatting, comments, or other features; clever code generation or register allocation; optimizations; etc.
  • How work was divided among team members. If you split up the work, who was responsible for what, or if you worked together on everything, a description of how that went.
  • Brief conclusions: what was good, what could have been better, what you would have done differently or would have liked to have seen changed about the project.

Your report should discuss the entire project, not just the final code generation part, so we can use it to help evaluate the overall outcome.

Department of Pedantry Department: Please write the following at the top of the first page of your report:

CSE 401 Project Report, Autumn 2018      [or CSE M501 as appropriate]
<group id>
<names>
<cse userids>

Please expand the nonterminals <names> and <uwnetids> with your actual names and uw netids. The <group id> should be the 2-letter code identifying your group's CSE 401 GitLab repository for your project. Do not include a separate cover page.

What to Hand In

Your report should be stored in a pdf file named project-report.pdf in the Notes/ top-level directory of your project and should be pushed to the repository by the deadline. Each group should turn in a single report. You do not need to push additional tags to the repository to identify the final report. We will use the last version pushed before the deadline.