Assignment 7
Due on Nov 29 before lecture.
Email your solutions to pdarga@umich.edu.
Preferably, email them as an attachment, with the filename: your_unique_name.zip
Problem 1a (21 Points)
Consider the language of Featherweight Generic Java discussed in class
(Figures 4-8 in the Featherweight Java paper). Your
goal for this project is to implement a type checker for Featherweight Generic
Java.
A partial implementation of a type checker is available from below:
The README file describes how to build Featherweight Generic Java.
Note that several methods of the type checker are not yet implemented
properly. These include the following:
-
fgj.typecheck.TypeEnvironment.subtype
-
fgj.typecheck.TypeChecker.checkMethod
-
fgj.typecheck.TypeChecker.checkVarTerm
-
fgj.typecheck.TypeChecker.checkFieldTerm
-
fgj.typecheck.TypeChecker.checkCallTerm
-
fgj.typecheck.TypeChecker.checkNewTerm
-
fgj.typecheck.TypeChecker.checkCastTerm
Implement the above methods to complete the implementation of a type
checker for Featherweight Java. Please submit the source code of your type
checker.
Problem 1b (7 Points)
Your goal for this problem is to test your above type checker
implementation. The tests directory supplied to you contains a bare
minimal test suite. Write a more comprehensive test suite by writing both
type-correct and type-incorrect example programs that thoroughly test your
implementation. Please submit your test suite.