In this milestone you submit the code of your compiler back-end, including a short report documenting its design.
You need to submit your ChocoPy project with a merge request on GitLab. The Git and Submissions documentation explains how to file such a request.
The deadline for submission is January 21, 2022, 23:59.
In your submission, include a short report in PDF format. The report (a free-form document, that does not have to be very long) should document what choices you have made in your implementation, and what transformation mechanisms you have used. Include at least descriptions of your approach to storage of intermediate values (registers or stack, register allocation), control-flow statements, calling convention, nested functions, translation of classes, and method invocation. If you have addressed any challenges, please make sure to note that in the report and explain your approach.
In your report use examples to illustrate your compilation scheme. That is, small ChocoPy programs (or program fragments) and the RISC-V code they are translated to by your compiler.
We grade your submission based on compliance with the ChocoPy dynamic semantics as defined in the reference manual.
The grade consists of two main components for which you get a grade on a 0 - 10 scale. The components are weighted as follows.
We provide early feedback for the correctness of your back-end.
This feedback gives you an indication which parts of your implementation might still be wrong.
It includes a summary of how many tests you pass and how many points you earn by passing them.
You have 30 early feedback attempts.
Please make your submissions to the milestone-3-submission
branch.