Programming assignment for Theory of Programming Languages course