The homework PDF is hw04.pdf, the source TeX is hw04.tex.
The written code is hw04.tgz. It includes three SML files: exp-sig.sml is the signature for the language's syntax, static.sml includes a partial implementation of the static semantics, and dynamic.sml includes a partial implementation of the dynamic semantics. If you unpack the directory as hw04, you can test the files as follows.
- CM.make "hw04/sources.cm"; - Test.typecheck "hw04/examples/apply.txt"; - Test.run "hw04/examples/intpair.txt";
CM.make loads all the files for the assignment. Test.typecheck runs typechecking on a program, and Test.run uses the dynamic semantics to evolve the program until it is a value. Your implementation of the dynamic semantics must correctly raise NoStep if the relevant expression is a value or a stuck expression.
Either hand in the written portion of your assignment in class, or else place it as hw04.pdf if in the directory /afs/andrew.cmu.edu/course/15/814/handin/**YOUR ANDREW ID**/ by class time on Wednesday.
Turn in three files for the programming portion of your assignment. The completed files static.sml, implementing the static semantics, dynamic.sml, implementing the dynamic semantics, and hw04.txt, which is a test case that typechecks and does something, preferably something interesting (in other words, a test case).