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, as well as being on-line.
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 (alberti) so be sure to test in that environment.
As with Project Part 2, you must submit a Makefile (called "Makefile") so that we can conveniently build your compiler. This Makefile should be for local use, linking vlib and jlib from the public cs712 area. You should also submit all source files, except for the jlib and vlib source. Your executable program should still be called "javac712".
Your programs should be submitted for grading from alberti.
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 April 6. 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.
Comments and questions should be directed to pjh@cs.unh.edu