CIS 461/561 Fall 2002

Introduction to Compilers

Course Project

[ Schedule | Resources and Tools ]

CIS 461/561 Home Page Last updated 2002/11/25 11:20:28

Project Schedule

The coding project for the course is to build a compiler for the Tiger language described in Appendix A of Appel's book. This project is worth approximately 50% of your grade. The project is broken into several phases. You may choose to work on the project phases in teams of two or three, or you may work entirely on your own. If do a project phase as a team, each team member will receive the same grade on that phase. By the end of the course we will have implemented a real, working compiler. This is an ambitious schedule and it is important to keep up as each phase builds upon the previous.

Grading of the project will be mostly automatic, i.e., running it on test cases. As time permits, I will also try to evaluate your code by a cursory examination of it.

Tools and resources used for the project are described below.

Description Topic Due
Phase 1 Lexical analyzer for Tiger language 9 AM Tuesday, October 15, 2002
Phase 2 Syntax parser for Tiger language 9 AM Tuesday, October 29, 2002
Phase 3 Building the abstract syntax tree for Tiger 9 AM Thursday, November 7, 2002
Phase 4 Perform semantic analysis on Tiger programs 9 AM Thursday, November 21, 2002
Final Phase Tiger compiler 5 PM Friday, December 6, 2002

All assignments must be turned in electronically. Instructions on doing this will be provided. Assignments will not be accepted after the due time indicated above.


Resources and Tools

We will [almost] maintain consistency with the textbook by using the tools described there:

You can find these tools in /cs/classes/cis461/tools on the departmental Unix machines. If you want to use them from here, set up your CLASSPATH appropriately. Or, you might prefer to obtain the full packages and install them on your own machine.

The code skeletons and samples provided by the textbook author are in the /cs/classes/cis461/tiger directory on the departmental unix machines.

Alternative tools you might consider for other projects:


datkins@cs.uoregon.edu