compiler course project