¿De qué partes consta un compilador? Principio de compilación

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.