CS712/CS812
Project Phase 3
Fall 2016
Due Sunday November 6


Add features to your UNH Go compiler:

  1. (50 points) This will be a re-evaluation of the first two bullet items from the Phase 1 assignment and the second and third bullet items from Phase 2.

  2. (10 points) Declaration of pointer and struct types. You do not need to support struct field tags. I will use the symbol table dump to evaluate your handling of declarations, so be sure that the dump is correctly functioning.

  3. (10 points) Pointer and struct expressions, including assignment, parameters, field selectors and the built-in function "new".

  4. (10 points) The address operation ("&"), pointer indirection ("*") the predefined identifier "nil", pointer comparisons and struct comparisons.

  5. (10 points) Composite literals of type struct.

  6. (10 points) Anonymous fields of structs.

You should be sure to complete the first three items in the above work list because they will be used to test your Phase 4 submission. The remaining items in the list will not be used to test your Phase 4 submission.

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

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.

Note that there is a script, distribute.sh, in ugo/bin, which will generate a tar file for you. This tar file is what I require you to submit to me for grading.

To turn in this assignment, type (on agate.cs.unh.edu):
~cs712/bin/submit phase3 ugo.tar

Submissions can be checked by typing (on agate.cs.unh.edu):
~cs712/bin/scheck phase3

The assignment is due on Sunday November 6. There is a grace period to 8am on Monday November 7 when no late penalty will be assigned. Submissions between 8am November 7 and 8am November 8 will have a late penalty of 10 points. Submissions between 8am November 8 and 8am November 9 will have a late penalty of 30 points. No submissions will be accepted after 8am on Wednesday November 9.

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


Last modified on October 18, 2016.

Comments and questions should be directed to pjh@cs.unh.edu