Semantics I, Continuing with the Symbol Table

Posted Thursday, March 27
Due at the beginning of your next lab period

Objectives

The objectives of this assignment are

To Do

Notes

Level A, B, and C compilers all need to be able to parse all mPascal programs, including those with procedures, functions, and parameters.

Only level A compilers will be required to translate mPascal programs that include procedures, functions, and parameters.

Therefore, if you are certain that you are going for level A, you should program for complete symbol table functionality.  If you are a little behind, or you are certain that you are targeting only level B or C, you should get the symbol table functioning at least for programs with no procedures or functions. As you get this done, we suggest that you include symbol table functionality for procedures, functions, and parameters.  In fact, for all of you, we recommend (as usual) a phased-in approach, as outlined next.

Remember that it is always best to construct and test your project in stages.  For example, you should be sure that your symbol table is being constructed and utilized properly when parsing programs that have no procedures and functions.  Then add the functionality for dealing with the new scope required by a procedures and functions that have no parameters.  Then do the same for procedures and functions that have parameters.  That way, you have something working before going on to the next stage.

To Turn In

Follow the TA's instructions on turning in this milestone.