RE:como creo un compilador
Lo primero que debes hacer es delimitar el lenguaje, por ejemplo en el caso de Pascal, indicas las funciones, estructuras, palabras reservadas.
En segundo lugar debes de hacer una serie de analizadores, de sintaxis, lexicográficos, etc.
Por último debes de hacer un traductor de código fuente a código objeto, sin embargo es una trabajo demasiado difícil.
Si estás planeando hacer uno te recomiendo el uso de diagramas de estados.
suerte