CS 431/631 - Programming Language Implementation
Spring 2013 Project
There are 4 projects to choose from. You need to notify me by e-mail
of your choice by Tuesday March 19.
Your grade will be based on
Implement a D to C++/Java translator. This is a good choice if you
wish to learn a new language and get more experience translating
language constructs to another language.
Implement a C/Pascal/Simple Language to Assembly translator on a target
This is best if you wish to learn more about code generation and
Add features to an existing language (e.g. C with Classes). This is
a good choice if you wish to learn more about designing languages.
Implement a Prolog interpreter. This is a good choice if you wish to
learn more about Prolog and providing a run-time environment (which is
needed to solve Prolog queries).
Steps to complete for the project:
- the quality of your implementation - does it correctly and efficiently
create code in your target language?
- the quality of your test programs - are they complete and rigorous?
- the percentage completeness of your implementation - this will vary
based on your project (i.e. implementing 50% of D would be impressive,
while 50% of ANSI C would not)
- Choose your project and submit your choice to me by Tuesday March 19.
- Create a suite of test programs of increasing complexity that you will use
to test your implementation and determine your percentage of completion.
E-mail the suite of test programs to me by Tuesday April 9.
- Finish your implementation.
- 15-20 minute presentation on Tuesday April 30 or Thursday May 2.
- Final written report due on Thursday May 2.