homework for compilers