The Project Directory

CS 4550
Translation of Programming Languages


You will deliver each stage of your project in the form of a code repository. The repository is a directory that contains all of the code and documents you create for the project.

This page describes a standard set of files for the project directory and a standard way to organize the directory. Please manage your project directory in a similar fashion over the course of the semester. If you would like to deviate in a significant way, please run your ideas by me.


Your project directory should contain the following items at the top level.


A plaintext README file provides basic information about your project to the reader. It should include:

The README may also explains the top-level architecture of your compiler and any design decisions that you think will help the reader understand your program better. It can point to more detailed documentation in the doc/ directory (see below).

compiler tools

Over the course of the project, you will create five scripts that make up the command-line suite of your compiler: kleins, kleinf, kleinp, kleinv, and kleinc. Add each script at the corresponding point of the project, as assigned.

src/ directory

The src/ directory contains all of the source files that implement your compiler. This includes: Be sure to clean up this directory before you submit a deliverable. Stray *.class, *.java~, and __pycache__ files distract the reader and exhibit a lack of care.

doc/ directory

The doc/ directory contains all of the files that document your work, including: These files can be plaintext, PDF, or image files.

programs/ directory

The programs/ directory contains any legal programs written in the source language. The most important of these are the programs your team writes for the various project modules. The directory may also contain source programs you write for your own use and source programs provided in the directory linked from the project web page.

tests/ directory

The tests/ directory contains the all of the code you create to test your compiler. This might include:

misc/ directory

If you create any other files as a part of your project that do not fit in one of the directories described above, put them in a misc/ directory.

Miscellaneous Notes

Eugene Wallingford ..... ..... August 31, 2017