learn the compiler(Dragon book)