NUS CS4212 Compiler Design