COMS W4115 - Spring 2013
Programming Languages and Translators
Project Presentations and Reports
Project Presentation
- Each team is required to give a 20-minute presentation with slides of their project
that should cover the following elements
(not necessarily in this exact order):
- a high-level description of their language
- one or two prototypical sample programs
- a live demo of one or two programs being translated and executed
- a block diagram of the translator
- a sequence of figures showing how a simple program is transformed
by each phase within the translator going from the
source program to the target program
- a description of the execution environment
- a description of the tools used to build the translator
including the makefile
- the process used to manage the project
- the test plan and test suites used to test the compiler
- lessons learned
- Every member of the team should speak for three or four minutes
as part of this presentation.
- The presentation will conclude with a 10-minute Q&A session.
- Examples of slides used in PLT language presentations in the previous two years can be found at
Project Report
- Please deposit a final report on your project on
Courseworks in your Teams folder by 6:00pm,
Sunday, May 12, 2013.
- Here is a suggested outline of the chapters to include in
your final project report.
- Be sure to include the name
of your language, the name of your team, the names of
all team members and the roles they played on the cover page of your report.
- For chapters 4-8, include the name of the author who wrote
that chapter. Each of chapters 4-8 should be just a few pages.
- Suggested Outline
- Introduction (written by the entire team)
- Use your updated language whitepaper.
- Language tutorial (written by the entire team)
- Make sure your translator will process all of the programs
mentioned in your language tutorial.
- Language reference manual (written by the entire team)
- Make sure it includes a complete grammar for your language.
- Project plan (to be written by the project manager)
- State what process used was used to develop the language
and its translator.
- State the roles and responsibilities of each team member.
- Include the implementation style sheet used by the team.
- Show the timeline of what was done and when.
- Include your project log.
- Language evolution (to be written by the language guru)
- Describe how the language evolved during the implementation
and what steps were used to try to maintain the good attributes of
the original language proposal.
- Describe the compiler tools used to create the compiler components.
- Describe what unusual libraries are used in the compiler.
- Describe what steps were taken to keep the LRM and the compiler consistent.
- Translator architecture (to be written by the system architect)
- Show the architectural block diagram of translator.
- Describe the interfaces between the modules.
- State which modules were written by which team members.
- Development and run-time environment (to be written by the system integrator)
- Describe the software development environment used to create the compiler.
- Show the makefile used to create and test the compiler during development.
- Describe the run-time environment for the compiler.
- Test plan (to be written by the system tester)
- Describe the test methodology used during development.
- Show programs used to test your translator.
- Conclusions
- Lessons learned as a team (to be written by the entire team)
- Lessons learned by each team member (written by each team member)
- Advice for future teams (written by the entire time)
- Suggestions for the instructor on what topics to keep, drop, or
add in future courses (written by the entire team)
- Appendix
- Include a listing of the complete source code with
identification of who wrote
which module of the compiler.
aho@cs.columbia.edu