Programming Language Final Project
It all comes down to this!
Final Project Submission
-
Date: May 9th, 11:59 pm via coursework
-
For your final compiler deliverable, you’ll be submitting 2 things. If your team is named “XYZ”, please submit:
- XYZ.pdf, a final report containing the content described below.
- XYZ.zip, a zip file of your entire project.
Video Submission
-
We have changed the format for the final project presentation to a 10-minute video recording submission. Please ensure your video effectively showcases the entirety of your final project.
- Date:
- May 13th, 11:59 pm via coursework
- May 9th, 11:59 pm via coursework, for graduating students
- Instructions:
- 10 mins presentation
- Sample Video
Project Report
The project report must have the following sections included:
- Introduction [within 1 page]
- Explain the purpose and motivation of your language, its use cases, and any necessary background that I’ll need to understand the point of your language.
- Language Tutorial [within 2 pages]
- A short explanation telling a novice how to use your language (consider this an informal version of a Language Reference Manual).
- Architectural Design [within 2 pages]
- Give block diagram showing the major components of your translator
- Describe the interfaces between the components
- State who implemented each component
- Test Plan [within 1 page]
- Show two or three representative source language programs along with the target language program generated for each
- What kind of automation was used in testing
- Summary [within 1 page]
- State who did what
- Each team member should explain his or her most important takeaways from working on this project
- Include any advice the team has for future teams
Grading
Your final deliverables will be graded with a holistic approach, as opposed to the rubric-based grading that has been applied to previous deliverables. I’ll be looking for indications that your group actually learned something about compilers and language design via this project, and that your compiler can actually handle a collection of “interesting’’ (i.e., non-MicroC) programs.
Acknowledgment
This final project rubric is designed by TAs for COMS W4115 Programming Languages and Translators, Columbia University.