Programming Language Final Project
It all comes down to this!
Final Project Submission
-
Date: May 15th, 11:59 pm via coursework
-
Date: May 12th, 11:59 pm for graduating students
-
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.
Virtual Presentation
You can choose to submit a recorded video or present via zoom.
Video Submission
-
Date: May 16th, 11:59 pm via coursework
-
Date: May 12th, 11:59 pm for graduating students
-
Instructions:
- 10 mins presentation
Zoom Presentation
-
Date: May 16th, 10:00 am - 10:00 pm
-
Date: May 12th, 10:00 am - 10:00 pm
-
Zoom link: https://columbiauniversity.zoom.us/j/7765148760
-
Instructions:
- 10 mins presentation + 2 mins questions
- pick any empty slots (first come first served) on the shared Doodle by filling in the team name and team members (name and uni)
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.