Project for CSCI3155 (Principles of Programming Languages)