Principles of programming language - lab 3