CS450 Compiler