UNIDAD V
INTEGRACION DEL COMPILADOR.
EJEMPLO DEl proceso de COMPILACIÓN
Supongamos que un compilador tiene que analizar la siguiente preposición:
suma= var1 + var2 + 10
Análisis Léxico
Elanalizador léxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia lógica (identificador, palabra reservada etc.). Esta secuencia de caracteres recibe el nombre componenteléxico o lexema. En este caso el analizador léxico verifica si el identificador id1 (nombre interno para "suma") encontrado se halla en la tabla de símbolos, si no esta produce un error porque todavíano fue declarado, si la preposición hubiese sido la declaración del identificador "suma" en lenguajes C, C++ (int suma;) el analizador léxico agregaria un identificador en la tabla de símbolos, y asísucesivamente con todos los componentes léxicos que aparezcan, los componentes léxicos resultantes de la expresión son:
Identificador: suma.
El símbolo de asignación: =
Identificador: var1Operador: +
Identificador: var2
Operador: +
Numero: 10
Que en el análisis léxico y con la tabla de símbolos es:
id1= id2+ id3 * 10
Análisis Sintáctico
El analizador sintáctico impone unaestructura jerárquica a la cadena de componentes léxicos, generada por el analizador léxico, que es representada en forma de un árbol sintáctico.
=
/ \
id1 +
/ \
id2 +
/ \ id3 10
Análisis Semántico
El analizador semántico verificara en este caso que cada operador tenga los operandos permitidos.
=
/ \
id1 +
/ \
id2 +
/ \ id3 tipo_ent
|
10
Generador de código intermedio
En esta etapa se lleva la preposición a una representación intermedia como un programa para una maquina abstracta.temp1= tipo_ent(10)
temp2= id3 * temp1
temp3= id2 + tem2
id1= temp3
Optimización de código
El código intermedio obtenido es representado de una forma mas optima y eficiente.
temp1= id3 * 10.0...
Regístrate para leer el documento completo.