CS712/CS812
Programming Project Part 3
Spring 1997


This project part concerns the compilation of Java expressions.

This assignment assumes a correctly functioning 75% level solution to Project Part 2. For this assignment the only legal statements inside a method body are an expression statement or a return statement.

At the 75% level, your compiler should support

At the 85% level, your compiler should support

At the 100% level, your compiler should support

To understand the details of Java bytecodes you must generate, you will want to consult the The Java Virtual Machine Specification by Lindholm and Yellin. Remember this book is on reserve in the Kingsbury library. Also on-line versions of early drafts of the book have been found at various exotic places: here, here, and here. The draft versions of the document should be sufficient to do this assignment.

Be sure to consider what semantic errors need to be detected for this assignment.

Syntactic error recovery is not required for this assignment, but you may find it convenient to add error productions to synchronize at semicolons and closing curly brackets.

Your program will be graded primarily by testing it for correct functionality. However, you may lose points if your program is not properly structured or adequately documented.

All test files used for grading will be publicly available prior to the due date. When ready, the test files will be in ~cs712/public/proj3.

Your programs will be graded using an Alpha machine (e.g. hopper and christa) so be sure to test in that environment.

As with Project Part 2, you should submit a Makefile and all source files, both the files you created and the ones that were provided to you (even if you have not modified them). Your executable program should still be called "javac712".

Your programs should be submitted for grading from either hopper or christa. To turn in this assignment, type:
~cs712/bin/submit proj3 <list of files to submit>

Do not turn in any non-Ascii files (i.e. no object files, no executable files, etc.).

Submissions can be checked by typing:
~cs712/bin/scheck proj3

To receive full credit for the assignment, you must turn in your files prior to 8am on Monday March 31. Late submissions will be accepted at the penalty of 5% per day up to one week late.

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


Last modified on March 3, 1997.

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