You are on page 1of 19

Compilador

Es un traductor que convierte un texto escrito en un lenguaje fuente de alto nivel en un programa objeto en cdigo mquina.

Intrprete
Es un traductor que realiza la operacin de compilacin paso a paso. Para cada sentencia que compone el texto de entrada, se realiza una traduccin, ejecuta dicha sentencia y vuelve a iniciar el proceso con la sentencia siguiente. La principal ventaja del proceso de compilacin frente al de interpretacin es que los programas se ejecutan mucho ms rpidamente una vez compilados; por el contrario, es ms cmodo desarrollar un programa mediante un intrprete que mediante un compilador puesto que en el intrprete las fases de edicin y ejecucin estn ms integradas.

La depuracin de los programas suele ser ms fcil en los intrpretes que en los compiladores puesto que el cdigo fuente est presente durante la ejecucin. Estas ventajas pueden incorporarse al compilador mediante la utilizacin de entornos de desarrollo y depuradores simblicos en tiempo de ejecucin.

Traductor
Es una mquina terica que tiene como entrada un texto escrito en un lenguaje L1 y como salida un texto escrito en un lenguaje L2. Habitualmente se denomina a L1 lenguaje fuente y a L2 lenguaje objeto.

Fases de un Compilador
Anlisis Lxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un anlisis smbolo por smbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este anlisis no logra detectar muchos errores por su caracterstica.

Ejemplo: total=valor*5 Luego del anlisis lxico: id = id * num

Anlisis Sintctico
En esta fase se analiza la estructura de las expresiones en base a gramticas. Aqui ya se puede determinar si una extructura por ejemplo una expresin matemtica mal formada. El anlisis que se realiza es jerrquico es decir en base a rboles de derivacin que se obtienen de las mismas gramticas. Ejemplo: position:=initial + rate*60

Anlisis Semntico
Este anlisis es ms dificil de formalizar, determina el tipo de los resultados intermedios, comprobar que los argumentos que tienen un operador pertenecen al conjunto de operadores posible, y si son compatibles entre s.

Generacin de Cdigo Intermedio


El cdigo intermedio es una representacin en base a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de optimizacin de cdigo. a=b+c 1: + b c T1 2: = a T1

Optimizacin de Cdigo
Consiste en realizar uuna mejora en el cdigo intermedio, para reducir el nmero de lneas y hacer que la ejecucin sea ms rpida a=b+c 1: + b c a

Generacin de Cdigo
Llegamos a la generacin de cdigo ensamblador o cdigo mquina del procesador que nos interese por ejemplo:
a:=b+c LOAD B ADD C STORE A

Herramientas
A continuacin se muestran algunas de las herramientas disponibles que pueden utilizarse para la realizacin del Proyecto de Compiladores

Ensambladores Simblicos ENS


Los ensambladores simblicos ENS permiten ensamblar, ejecutar y depurar el cdigo ensamblador generado por el compilador. Dentro de los ficheros comprimidos que se pueden obtener en la tabla, se encuentra informacin sobre su uso, su sintaxis y algn ejemplo de funcionamiento. El compilador construido en el Proyecto de Compiladores tiene que generar como cdigo objeto uno de estos ensambladores.

FIN

You might also like