¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a...
-
Upload
anacleto-manzanares -
Category
Documents
-
view
42 -
download
1
Transcript of ¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a...
![Page 1: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/1.jpg)
¿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.
![Page 2: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/2.jpg)
Teoría de Autómatas y Compiladores
![Page 3: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/3.jpg)
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
![Page 4: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/4.jpg)
Ejemplo:
total=valor*5 Luego del análisis léxico:1. El identificador total.2. El símbolo de asignación =.3. El identificador valor.4. El signo de multiplicación.5. El numero 5.
id = id * num
Teoría de Autómatas y Compiladores
![Page 5: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/5.jpg)
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
![Page 6: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/6.jpg)
Teoría de Autómatas y Compiladores
![Page 7: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/7.jpg)
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
![Page 8: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/8.jpg)
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
![Page 9: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/9.jpg)
Tiemp1:= entareal (5)Tiemp2:= volar * tiemp1Total:=tiemp2
Teoría de Autómatas y Compiladores
![Page 10: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/10.jpg)
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
![Page 11: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/11.jpg)
Tiemp1:=valor * 5Total=tiemp1
Teoría de Autómatas y Compiladores
![Page 12: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/12.jpg)
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
![Page 13: ¿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.](https://reader033.fdocuments.mx/reader033/viewer/2022061215/54abc023497959ae418b4c7a/html5/thumbnails/13.jpg)
Traducción de una proposición.