Assignment 3: Static Semantics

Due: midnight (11:59), Thur, October 7.

Project 3 is to read chapter five of the text and build a static-semantics checker for Appel's Tiger language.

Your code should perform the static semantic checks decribed in Chapter 5:

Your semant module should export a function with this signature:

transProg : Absyn.exp -> unit
that checks an AST and outputs error messages if anything is wrong. (Why is our type-checker called transProg rather than something like typeCheck? Because we'll be extending it in project 4 to type-check and translate the AST to our intermediate representation.)

You will find a structure Types defining a datatype to represent Tiger types in $TIGER/chap5/types.sml. Students doing multi-dimensional arrays will need to extend this datatype.

If you don't have a functional parser, contact me.

You should submit:

(If in doubt, turn it in. Entire working directories not only acceptable, but kinda nice.)

Words to the wise:

  -Olin

CS 4240