CS712/CS812
Project Phase 2
Summer 2020
Due Sunday June 27


Add features to your T compiler:

  1. (50 points) This will be a re-evaluation of the first three work items from the Phase 1 assignment.

  2. (10 points) main block declarations of arrays.

  3. (10 points) array creation. (You only need to support the creation of arrays where a single dimension length is specified.)

  4. (10 points) array reference (without run-time type checking).

  5. (10 points) cast of array types (without run-time type checking).

  6. (10 points) array length field.

  7. (20 bonus points for CS712, 20 points out of 120 scaled to 100 for CS812) Object type and run-time type checking for array assignment and cast.
You should complete items 2-4 in the above work list in the order that they are presented. That is, declaration of arrays will be used to test array creation, which will be used to test array reference. Also, items 2-3 should be completed prior to doing either item 5 or item 6, because items 2-3 will be used to test items 5-6.

There are some initial test files available on agate in ~cs712/public/tests/phase2.

To get full credit, your code must be adequately documented and structured. If I can't easily read and understand your code, you may lose points.

You must give me back the system in the same form that I gave it to you. I must be able to install it and run it in the exact same way as when it was delivered to you. I would also like you to keep the source code organized in the same directory hierarchy. If you fail to do this, a significant deduction will be made to your grade.

Submissions should follow the instructions in the Gitlab setup instructinos

Due date for this assignment is Thursday, July 6th. Any submission made on the 6th will be awarded a total of 14 bonus points in addition to any provided by the assignment itself. That bonus will decrease by 2 points per day until Thursday July 13th, after which typical late penalties apply as specified in the syllabus.

Remember: you are expected to do your own work on this assignment.

Comments and questions:


Last modified on May 24, 2021.