the Compiler final homework