HKUST COMP3031 Principles of Programming Languages (2013 Fall) Assignment 2