Assignment 3: Static Semantics

Due: class time (1:30), Tuesday, October 11.

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.

You should submit:

Words to the wise:

  -Olin

CS4240