| CIS 461/561 Home Page | Last updated 2002/11/25 11:20:28 |
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.
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: