introducción a compiladores
TRANSCRIPT
¿Compilador ?
Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a un programa objeto en código máquina.
Teoría de Autómatas y Compiladores
Teoría de Autómatas y Compiladores
Intérprete Es un traductor que realiza la operación de compilación
paso a paso. Para cada sentencia que compone el texto de entrada, se realiza una traducción, ejecuta dicha sentencia y vuelve a iniciar el proceso con la sentencia siguiente. La principal ventaja del proceso de compilación frente al de interpretación es que los programas se ejecutan mucho más rápidamente una vez compilados; por el contrario, es más cómodo desarrollar un programa mediante un intérprete que mediante un compilador puesto que en el intérprete las fases de edición y ejecución están más integradas.
Teoría de Autómatas y Compiladores
La depuración de los programas suele ser más fácil en los intérpretes que en los compiladores puesto que el código fuente está presente durante la ejecución. Estas ventajas pueden incorporarse al compilador mediante la utilización de entornos de desarrollo y depuradores simbólicos en tiempo de ejecución.
Teoría de Autómatas y Compiladores
Traductor
Es una máquina teórica 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.
Teoría de Autómatas y Compiladores
Fases de un Compilador
Análisis Léxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un análisis símbolo por símbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este análisis no logra detectar muchos errores por su característica.
Teoría de Autómatas y Compiladores
Ejemplo:
total=valor*5 Luego del análisis léxico:5. El identificador total.6. El símbolo de asignación =.7. El identificador valor.8. El signo de multiplicación.9. El numero 5.
id = id * num
Teoría de Autómatas y Compiladores
Análisis Sintáctico
En esta fase se analiza la estructura de las expresiones en base a gramáticas. Aquí ya se puede determinar si una estructura por ejemplo una expresión matemática esta mal formada. El análisis que se realiza es jerárquico es decir en base a árboles de derivación que se obtienen de las mismas gramáticas. Ejemplo: position:=initial + rate*60
Teoría de Autómatas y Compiladores
Teoría de Autómatas y Compiladores
Análisis Semántico
Este análisis es más difícil 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í.
Teoría de Autómatas y Compiladores
Generación de Código Intermedio
El código intermedio es una representación en base a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de optimización de código.
Teoría de Autómatas y Compiladores
Tiemp1:= entareal (5)Tiemp2:= volar * tiemp1Total:=tiemp2
Teoría de Autómatas y Compiladores
Optimización de Código
Consiste en realizar uuna mejora en el código intermedio, para reducir el número de líneas y hacer que la ejecución sea más rápida
Teoría de Autómatas y Compiladores
Tiemp1:=valor * 5Total=tiemp1
Teoría de Autómatas y Compiladores
Generación de Código
Llegamos a la generación de código ensamblador o código máquina del procesador que nos interese por ejemplo:
MOVF valor,R2MULF #5,R2MOVF R2, total
Teoría de Autómatas y Compiladores
Traducción de una proposición.
PREGUNTAS ?