In this phase you will revise your language specification and continue to test and improve your compiler. Your compiler and your language specification should agree! You should also invest some time in working on your compiler source code, if necessary. The code should be well-organized, well-structured and well-documented.
Continue to develop tests to thoroughly test your compiler. You should provide tests for both semantic errors and for correct programs. Again provide a plain ASCII text file that describes your test plan. This test plan should include a description of the purpose of each test file, as well as a summary that provides your argument as to why the test files taken as a whole thoroughly test your compiler. If there are known bugs, include a description of each bug in your test plan. (Knowing you have a bug is better than not knowing you have a bug!)
Again supply a Makefile for building and testing your compiler called "Makefile". The default Make target (topmost in the Makefile) should build your compiler. You should have a Make target for running all your compiler tests as one long string of tests, called "test". (You might want to develop scripts for running these strings of tests and then invoke the scripts from the Makefile.) Finally, have a Make target for cleaning up ALL files generated by any of the other Make targets, called "clean".
Grading will be based on the following:
You can develop your compiler on any system that you have access to, but for grading purposes I will execute it on turing.unh.edu, so be sure to test in that environment.
The deliverables for this phase include your language specification document, the source code for your compiler, your test plan, all the test programs that you developed, the Makefile, and any other support files needed to build and test your compiler. Also include a README file with your submission that describes the purpose of each file submitted.
You should bring me a paper copy of your language specification document no later than the beginning of class on Monday May 10. You may not turn in your language specification document after class on Monday May 10!
You should submit your other files from turing.unh.edu using my "submit"
script.
To turn in this assignment, type:
~cs712/bin/submit phase5 list of filenames
If your files are organized in subdirectories, then tar or zip up your files and submit the tar or zip file. In this case include a note in your README file to explain how I should process the tar/zip file.
Submissions can be checked by typing (also on turing.unh.edu):
~cs712/bin/scheck phase5
To receive full credit for the assignment, you must turn in your electronic files prior to 8am on Wednesday May 12. Late submissions will be accepted at a penalty of 2 points for one day late, 5 points for two days late, 10 points for three days late, 20 points for four days late, and 40 points for five days late. No program may be turned in more than 5 days late. Remember: you must turn in your language specification no later than class on Monday May 10!
Remember: you (with possibly an approved partner) are expected to do your own work on this assignment!
Comments and questions should be directed to hatcher@unh.edu