For PA5 joint and separate group reports are required if you are working with a partner or group (see below for details). The joint report should be put in the README file and the separate reports should be emailed to email@example.com. Both are due with the assignment itself. The group joint and separate reports will be worth 10% of the programming assignment grade for those of you working in a group.
happy MJParserPA5.y -i ghc --make MainPA5.hs -o mjc mjc TestCase.java java -jar MJSIM.jar -b -f TestCase.java.s > t1 javac TestCase.java java TestCase > t2 diff t1 t2
The input files can be any PA5 MeggyJava program. The output file named InputFile.java.s should be an AVR assembly program that using the provided build process could run on the MeggyJr device. Additionally, the InputFile.java.s file must be such that we can run it through the AVR simulator, MJSIM.jar. See the Meggy Sim instructions for usage notes.
We highly recommend you use the regression script (regress.sh) that was covered in the third week's recitation. Create multiple test cases, put them in the WorkingTestCases/ subdirectory and test your mjc compiler against the Java-only output.
Assembly (.s) programs have a prolog and epilog. For PA5 and later assignments, we will let you provide your own input files for these to avoid any grading issues. Make sure to include any files you need in your tar ball.
Execute MJSIM.jar for a list of available instructions. For more details about the instructions see the 06-AVR.txt notes.
For this assignment, there will be no lexer errors, but there will be examples with type errors. Your compiler should catch type errors and print out a reasonable message. We will be manually comparing your messages to those generated by by the Java compiler, javac.
You will need to submit a video of your MeggyJr with a MeggyJava program that demonstrates MeggyJava language features. The picture should be named demoPA5.something, where something is .mov or whatever video format you used for PA1. You can talk during the demo.
svn log svn infoThe output should be from subversion or similar output from any other revision control tool.
tar cvf PA5.tar README revision-control.txt Lexer.hs MJParserPA5.y MainPA5.hs