ECE 468/573 Project Home Page
Announcements
- 11/8: Note that the sample tiny code outputs were generated with a version of the compiler that does register allocation. as a result, your code may not emit all of the moves that the sample output does. As always, to test if your code is correct make sure that running it on the simulator generates the same result as the sample output. You do not need to match the output tiny exactly. Project step 6's due date has been postponed to Saturday, Nov. 10th
-
- 10/26: Outputs for project step 5 posted!
- 10/15: Project step 4 is now due Tuesday, October 16th
- 9/28: Project step 3 is now due Wednesday, October 3rd
- 9/27: Testcases for project step 3 have been posted.
- 9/14: A clarification: a production of the form "{X}" in the grammar means that X is optional, not repeated (this is different from what the slides say).
- 9/12: Project Step 2's due date has been postponed to Monday, September 17th
- 9/2: There were a few errors in the grammar, which have been corrected. Please grab the new grammar file.
- 9/1: Step 2 has been posted.
- 8/25: Step 1 has been posted. Outputs for the test cases
will be up soon are up.
- Steps 0 has been posted.
Introduction
This project consists of implementing a simple compiler for the so called LITTLE programming language. The LITTLE language is a toy programming language designed solely for this course and it's based (however different!) on the MICRO language described in the course text book. Pay careful attention: ECE 573 students have a slightly different grammar than ECE 468 students
Project TA
Jonathan Too will be grading the projects and answering questions. You can get in touch with him at jtoo 'at' purdue 'dot' edu. He is available in EE 207 from 6:00–7:00 on Wednesdays and Thursdays.
Project Steps
- Step 0 - Submission test and group selection Due on: Fri, Aug. 24th
- Step 1 - Scanner (Tokenizer) (100 points) Due on: Fri, Aug. 31st
- Step 2 - Parser (100 points) Due on: Fri, Sep. 14th
- Step 3 - Symbol Table (100 points) Due on
Monday, Oct. 1st Wednesday, Oct. 3rd
- Step 4 - Semantic actions for expressions and assignment statements (100 points) Due on: Monday, Oct. 15th
- Step 5 - Semantic actions for control structures (100 points) Due on: Monday, Oct. 29th
- Step 6 - Semantic actions for function calls (100 points) Due on:
Friday, Nov. 9th Saturday, Nov. 10th
- Step 7 - Register allocation (100 points) Due on: Monday, Dec. 3rd
- Step 8 - Final turn-in.
Due on: Friday, Dec. 7th
Grading policy: All the points from the first 7 steps add up to 700 points (plus 10 bonus points from step0) and are worth total 30% of the project's total grade. The final step is worth 70% of the project's grade. Any submission will be tested against a set of published and hidden datasets. All hidden datasets will be published after the submission deadlines.
Submission Instructions
Submit each step using the turnin command. Instructions for using turnin are available here.
Tutorials
- A Bison/C++ reference is here. A working example can be found here.