Lab 8 - Completing the Symbol Table

Objectives

The objectives of this laboratory are

To Do - Make Decisions

As a group, it is time for you to settle carefully on the decision as to which level (AB, or C) you wish to strive for with your compiler.   Neither level B nor C require the translation of procedures and functions.  However, your compiler should still be able to parse any mPascal program. Thus, you will need to be able to construct a symbol table with scopes.  We have had you work on the multi-scope symbol table this past week so that you will all understand how it works.  One thing to remember in making your choice is that the higher the level you strive for, the more practice you will get with the concepts we cover in the lecture, which will make your learning of the concepts that much easier (e.g., for quizzes).

To Do - Work on your Compiler

Continue to work on your symbol table.  Your next assignment will require that you include code that will print your symbol table on demand.  You will be able to put this call into your code at any point for help in debugging as well as to demonstrate that your symbol table works.  Whenever the new print_symbol_table method of the Symbol_Table object or package is called, the entire stack of symbol tables for each scope must be printed and labeled with the name of its scope (name of the procedure, function, or program of that scope).  The assignment will require other things as well, posted with the milestone.

Special Notes

Today's lab will be dedicated primarily to your team's progress.  You will be given time to work together on your projects. The main issue at this point is completion of the symbol table. Recall the previous lab. There are some special issues you will need to consider:

To Turn In

There is nothing to turn in today.