1. Análisis léxico
El analizador léxico identifica cada token (token) en el programa fuente de acuerdo con las reglas léxicas. Cada token representa un tipo de palabra (lexema). Los símbolos comunes en los programas fuente se pueden clasificar en varias categorías: palabras clave, identificadores, literales y símbolos especiales. La entrada del analizador léxico
es el programa fuente y la salida es el flujo de tokens reconocido. La tarea del analizador léxico es convertir el flujo de caracteres del archivo fuente en un flujo de tokens. Básicamente, mira caracteres consecutivos y los reconoce como "palabras".
2. Análisis gramatical
El analizador gramatical identifica la estructura (frase, oración) en el flujo de tokens de acuerdo con las reglas gramaticales y construye un árbol gramatical que puede reflejar correctamente la estructura. .
3. Análisis semántico
El analizador semántico realiza comprobaciones semánticas estáticas en las unidades de sintaxis en el árbol de sintaxis de acuerdo con reglas semánticas. Si se realiza la verificación de tipos y la conversión, el propósito es. Asegúrese de que la sintaxis sea correcta. La estructura también es semánticamente legal.
4. Generación de código intermedio
El generador de código intermedio genera códigos intermedios en función de la salida del analizador semántico. El código intermedio puede presentarse en varias formas y su característica única es que son independientes de la máquina específica. El código intermedio más utilizado es el código de tres direcciones y uno de sus métodos de implementación es el cuaternión. La ventaja del código de tres direcciones es que es fácil de leer y optimizar.