Mid-semester Project Information


Due Dates:

May 24, 2009
Show Part 1's deliverables to the TA (failure to do so will result in a 10% penalty).
May 31, 2009
Submit Part 1 and Part 2's deliverables to the TA (one submission per group please).

Quick Links


This is a Team Project

Working in teams is an important part of any working environment, and the only way I know for you to learn about it is to do it. You are required to work in teams of two people for this project. (In some cases, three-person groups will be allowed--this must be with instructor's approval and typically only if there is an odd number of students.)


Project Overview - Language Translation

We have been studying how BNF and abstract syntax can be used to guide the format of programs. In fact, the translation of BNF and abstract syntax into programs is methodical enough that it can be automated. In this project, you will see that supplying the abstract syntax is enough to create an entire declaration.

For this project, you will write a Scheme program that translates a Simple Language for Abstract Types (SLAT) into Java.

The program can be broken into three separate modules:

  1. Parser - The parser converts concrete SLAT declarations into a SLAT abstract syntax tree.
  2. Translator - The translator converts a SLAT abstract syntax tree into a list of Java abstract syntax trees.
  3. Unparser - The unparser, or pretty printer (aka: java-pp), translates a Java abstract syntax tree into Java code.
    This part is given to you.



If there are problems with this page, please send mail to <cs330ta@cs.byu.edu>
If you have a comment about the class, please send mail to <seamons@cs.byu.edu>


© 1994-2009, Phillip J. Windley and Bryan S. Morse.  All rights reserved.
Reproduction of all or part of this work is permitted for educational or research use provided that this copyright notice is included in any copy.


Last updated at 9:54 am on Friday, August 27, 2004.