Compilador Diseño - las Fases del Compilador



El proceso de compilación es una secuencia de varias fases. Cada fase dura entrada de su etapa anterior, tiene su propia representación del programa de origen, y alimenta su resultado a la siguiente fase del compilador. Nos permiten entender las fases de un compilador.

Fases del Compilador

Análisis Léxico

La primera fase de escáner funciona como un texto escáner. Esta fase busca en el código fuente como una secuencia de caracteres y la convierte en un lexema resultante-. Analizador Léxico representa estos lexema resultante- en forma de fichas:

<token-name, attribute-value>

Sintaxis Análisis

La siguiente fase se denomina la sintaxis análisis o análisis. Toma el token de análisis léxico como entrada y genera un árbol analizar (o árbol de sintaxis). En esta fase, token arreglos se contrastan con el código fuente gramática, es decir, el analizador comprueba si la expresión de los tokens es sintácticamente correcto.

Análisis semántico

Análisis semántico comprueba si el análisis árbol construido sigue las reglas del idioma. Por ejemplo, la asignación de valores es entre tipos de datos compatibles, y añadiendo cadena en un número entero. Además, el analizador semántico realiza un seguimiento de los identificadores, sus tipos y expresiones; si los identificadores se declaran antes de su uso, o no, etc. El analizador semántico produce un árbol de sintaxis anotado como una salida.

Generación de código intermedio

Tras análisis semántico el compilador genera un código intermedio del código fuente para el equipo de destino. Es un programa para algunos la máquina abstracta. , Está entre el lenguaje de alto nivel y el lenguaje de máquina. Este código intermedio debe ser generado de tal manera que hace que sea más fácil de traducir en la máquina de destino.

Optimización de código

La siguiente fase de optimización de código es el código intermedio. La optimización puede ser asumida como algo que elimina código innecesario, y organiza la secuencia de declaraciones con el fin de acelerar la ejecución del programa sin desperdicio de recursos (CPU, memoria).

Generación de código

En esta fase, el generador de código optimizado la representación del código intermedio y la asigna a la máquina de destino. El generador de código se traduce el código intermedio en una secuencia de (generalmente) reubicables código máquina. Secuencia de instrucciones de código máquina realiza la tarea como el código intermedio.

Tabla de símbolos

Es una estructura de datos mantendrá en todas las fases de un compilador. Todos los nombres de identificador junto con sus tipos se almacenan aquí. La tabla de símbolos hace que sea más fácil para que el compilador pueda buscar con rapidez el registro de código y recuperarla. La tabla de símbolos se utiliza también para el campo.

Advertisements