¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a...

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.

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.

¿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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Traducción de una proposición.