Primary:
[Skip To Body]
[Front Door]
[Current]
[Glance]
[Honesty]
[Instructions]
[Links]
[Search]
[Syllabus]
Sets:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Project]
[Readings]
[Reference]
ECA:
[About]
[Grades]
[Quizzes]
[Submit Work]
[Change Password]
[Reset Password]
Miscellaneous:
[2001S]
[98F]
[SamR]
[Glimmer Labs]
Assigned: Wednesday, November 20, 2002
Due: Friday, December 13, 2002
Summary: In this stage of the project, you will translate your parse trees into a simple intermediate code, PAL.
Group Work:
Write a translator that traverses parse trees for a selected subset of Pascal programs and translates them to PAL. You should then print out the corresoponding PAL program (preferably to a file) and run it.
Your translator need only deal with integer and Boolean types (and you can treat Booleans as integers). You need to handle conditionals, assignment (with all types of expressions except record and arrays), procedure calls, function calls, while loops, repeat loops, and for loops.
You need not handle case statement, array indexing, records, labels and gotos, pointers, variable parameters, or nested function or procedure definitions.
You can assume that the program is type correct and that all variables are declared.
You can use my implementation of symbol tables, which is available
in
/home/rebelsky/Web/Courses/CS362/2002F/Examples/rebelsky/compiler/misc/SymbolTable.java
.
You can find information on PAL in the lab on PAL.
For extra credit, do more than the minimum.
Friday, 1 November 2002 [Samuel A. Rebelsky]
Friday, 8 November 2002 [Samuel A. Rebelsky]
Primary:
[Skip To Body]
[Front Door]
[Current]
[Glance]
[Honesty]
[Instructions]
[Links]
[Search]
[Syllabus]
Sets:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Project]
[Readings]
[Reference]
ECA:
[About]
[Grades]
[Quizzes]
[Submit Work]
[Change Password]
[Reset Password]
Miscellaneous:
[2001S]
[98F]
[SamR]
[Glimmer Labs]
Disclaimer:
I usually create these pages on the fly
, which means that I rarely
proofread them and they may contain bad grammar and incorrect details.
It also means that I tend to update them regularly (see the history for
more details). Feel free to contact me with any suggestions for changes.
This document was generated by
Siteweaver on Wed Nov 20 11:06:53 2002.
The source to the document was last modified on Wed Nov 20 11:06:15 2002.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS362/2002F/project.04.html
.
You may wish to
validate this document's HTML
;
;
Check with Bobby