In this phase you will implement and test the code generation phase of your compiler.
Develop a set of tests to thoroughly test your code generation phase. Be sure your tests "cover" the whole language. Also please 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!)
Develop a Makefile for building and testing your compiler (scanner, parser, semantic analysis and code generation) 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 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.
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.
You should submit your files from turing.unh.edu using my "submit"
script.
To turn in this assignment, type:
~cs712/bin/submit phase4 list of filenames
Submissions can be checked by typing (also on turing.unh.edu):
~cs712/bin/scheck phase4
To receive full credit for the assignment, you must turn in your files prior to 8am on Wednesday April 21. 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 (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