beginning a compiler