Un compilador se puede dividir en dos fases en función de la forma en que se compilan.
Fase de análisis
Conocido como el front-end del compilador, el analysis La fase del compilador lee el programa fuente, lo divide en partes centrales y luego comprueba si hay errores léxicos, gramaticales y de sintaxis. La fase de análisis genera una representación intermedia del programa fuente y la tabla de símbolos, que se debe alimentar a la fase Síntesis como entrada .
Fase de síntesis
Conocido como el back-end del compilador, el synthesis La fase genera el programa de destino con la ayuda de la representación del código fuente intermedio y la tabla de símbolos.
Un compilador puede tener muchas fases y pasadas.
Pass : Una pasada se refiere al recorrido de un compilador por todo el programa.
Phase: Una fase de un compilador es una etapa distinguible, que toma información de la etapa anterior, procesa y produce una salida que se puede utilizar como entrada para la siguiente etapa. Un pase puede tener más de una fase.