Aquí tienes un tutorial de guía:
http://compilers.iecc.com/crenshaw/
Aquí puedes descargarte un libro interesante y básico:
http://www.lcc.uma.es/~galvez/Compiladores.html
Pienso que java proporciona una interesante forma de compilar, por ejemplo usando la clase Reflection, pero nunca me he metido a fondo en ello. Así que suerte.