CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES...
-
Upload
ricarda-bueno -
Category
Documents
-
view
215 -
download
0
Transcript of CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES...
![Page 1: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/1.jpg)
CONDICIONES DE LA CONDICIONES DE LA MATERIAMATERIA
Universidad Nacional de JujuyFacultad de Ingeniería
COMPILADORESCOMPILADORES
Elizabeth Reinoso
![Page 2: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/2.jpg)
DOCENTES DE LA MATERIA
PROFESOR A CARGO
ING. ELIZABETH REINOSO
CORREO: [email protected]
PROFESORA DE PRACTICAS
ING. FABIANA ARAGON
CORREO: [email protected]
Elizabeth Reinoso: [email protected]
![Page 3: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/3.jpg)
HORARIOS DE CLASES TEORIAS
ING. ELIZABETH REINOSO LUNES DE : 11:00 A 14:00 AULA 17 CONSULTA: MARTES DE 16:00 A 18:00 GAB. 18
PRACTICAS ING. FABIANA ARAGON
MIERCOLES DE : 10:00 A 13:00 AULA 17 CONSULTA: JUEVES DE 15:00 A 16:00 GAB. 18
Elizabeth Reinoso: [email protected]
![Page 4: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/4.jpg)
CONDICIONES DE LA MATERIA
CUATRIMESTRAL
2 PARCIALES
UN RECUPERATORIO
ENTREGA DE TRABAJOS PRACTICOS ANTES
DE CADA PARCIAL
ENTREGA DE TRABAJO FINAL.
Elizabeth Reinoso: [email protected]
![Page 5: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/5.jpg)
CONDICIONES DE EVALUACION
REGIMEN DE REGULARIDAD Para regularizar la materia los alumnos deberán aprobar Los prácticos de programación propuestos (fuente y
ejecutable) incluyendo un informe del trabajo realizado. Dos exámenes parciales 1 teórico y 1 práctico o sus
respectivas recuperaciones. Setenta por ciento (50%) es el porcentaje mínimo, de los ejercicios y/o preguntas a resolver, necesario para aprobar cada parcial
La entrega del trabajo final dado (fuente y ejecutable)
Elizabeth Reinoso: [email protected]
![Page 6: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/6.jpg)
CONDICIONES DE EVALUACION
REGIMEN DE PROMOCION Para promocionar la materia los alumnos deberán
aprobar:
1. Los prácticos de programación propuestos (fuente y ejecutable) incluyendo un informe del trabajo realizado.
2. Dos exámenes parciales 1 teórico y 1 práctico o sus respectivas recuperaciones. Setenta por ciento (70%) es el porcentaje mínimo, de los ejercicios y/o preguntas a resolver, necesario para aprobar cada parcial.
3. La entrega del trabajo final dado (fuente y ejecutable) La nota final se computará promediando las notas
obtenidas en los puntos 1 , 2 y 3.Elizabeth Reinoso: [email protected]
![Page 7: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/7.jpg)
FECHAS TENTATIVAS DE PARCIALES
1° PARCIAL: 07 DE MAYO DE 2012
2° PARCIAL : 18 DE JUNIO DE 2012
RECUPERATORIO 1° Y 2° PARCIAL: 25
DE JUNIO
Elizabeth Reinoso: [email protected]
![Page 8: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/8.jpg)
INTRODUCCIONINTRODUCCION
Universidad Nacional de JujuyFacultad de Ingeniería
COMPILADORESCOMPILADORES
Elizabeth Reinoso
![Page 9: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/9.jpg)
Objetivos Generales Aprender qué es un compilador Conocer los tipos de compiladores que existen Conocer la diferencia entre compilador e interprete Familiarizarse con el contexto de un compilador Aprender la estructura y fases de un compilador
Eliz9abeth Reinoso: [email protected]
![Page 10: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/10.jpg)
Índice General
¿Qué es un compilador? Compiladores e interpretes Contexto de un compilador Tipos de compiladores Estructura de un compilador
Elizabeth Reinoso: [email protected]
![Page 11: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/11.jpg)
¿Qué es un Compilador?
Elizabeth Reinoso: [email protected]
LenguajeFuente TRADUCTOR Lenguaje
Objeto
LenguajeFuente
Alto Nivel
Bajo Nivel
Traductor
Compilador
Un compilador es un programa que lee un programa escrito en lenguaje fuente, y lo traduce a un lenguaje objeto de bajo nivel. Además generará una lista de los posibles errores que tenga el programa fuente
![Page 12: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/12.jpg)
Compiladores e Interpretes
Compiladores Una única compilación Mayor velocidad ejecución Mayor detalle de errores Mayor consumo de memoria
Interpretes Interpretación en ejecución Menor velocidad ejecución Menor detalle de errores Menor consumo de memoria
Elizabeth Reinoso: [email protected]
![Page 13: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/13.jpg)
Contexto de un Compilador
Contexto Precompilador Compilador Enlazador (montador) Depurador Ensamblador
Elizabeth Reinoso: [email protected]
.C .H
Precompilador
.C
Compilador
.ASM
Ensamblador
.OBJ .OBJ .OBJ
Enlazador
.ASM .EXE
.LIB
Ensamblador
.DLL
WIN.EXE
.EXE
![Page 14: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/14.jpg)
Tipos de Compiladores
Tipos de compiladores Ensamblador Compilador cruzado Compilador con montador Autocompilador Metacompilador Descompilador
Elizabeth Reinoso: [email protected]
![Page 15: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/15.jpg)
Estructura de un Compilador
Análisis Léxico
Prog. Fuente
Análisis Sintáctico
Análisis Semántico
Generación de Código Intermedio
Optimización de Código Intermedio
Generación de Código Objeto
Prog. Objeto
Tabla de Símbolos
Gestión de Errores
IndependenciaFísica
DependenciaFísica
![Page 16: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/16.jpg)
Análisis Léxico
Tipos de tokens Específicos
Palabras reservadas Separadores Operadores
No específicos Identificadores Constantes Etiquetas
Estructura Tipo Lexema
El analizador léxico o scanner, transforma el texto fuente en una secuencia ordenada de elemento léxicamente válidos (tokens)
G. Errores
Tabla de Simbolo
Análisis Léxico
while
[WORDRESERVED, WHILE]
Elizabeth Reinoso: [email protected]
![Page 17: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/17.jpg)
Análisis Léxico
Tipos de tokens Específicos
Palabras reservadas Separadores Operadores
No específicos Identificadores Constantes Etiquetas
Estructura Tipo Lexema
El analizador léxico o scanner, transforma el texto fuente en una secuencia ordenada de elemento léxicamente válidos (tokens)
G. Errores
Tabla de Simbolo
Análisis Léxico
while
[WORDRESERVED, WHILE]
Elizabeth Reinoso: [email protected]
Los errores léxicos son difíciles de detectar y suelen delegarse en el
análisis sintáctico
Error
![Page 18: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/18.jpg)
Análisis Léxico
Tipos de tokens Específicos
Palabras reservadas Separadores Operadores
No específicos Identificadores Constantes Etiquetas
Estructura Tipo Lexema
El analizador léxico o scanner, transforma el texto fuente en una secuencia ordenada de elemento léxicamente válidos (tokens)
G. Errores
Tabla de Símbolo
Análisis Léxico
dade
[ID, “edad”]
Elizabeth Reinoso: [email protected]
ID
![Page 19: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/19.jpg)
Análisis Sintáctico
Definición
Funciones Guiar la traducción Gestión de errores prelación de operadores
A/B*C = A/(B*C) A/B*C = (A/B) * C
El analizador sintáctico o parser recibe los tokens y comprueba su ordenación correcta. Genera un árbol sintáctico
A:= B + C
Análisis Sintáctico
:=
A +
B CElizabeth Reinoso: [email protected]
![Page 20: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/20.jpg)
Análisis Sintáctico
Definición
Funciones Guiar la traducción Gestión de errores prelación de operadores
A/B*C = A/(B*C) A/B*C = (A/B) * C
El analizador sintáctico o parser recibe los tokens y comprueba su ordenación correcta. Genera un árbol sintáctico
A:= B + C
Análisis Sintáctico
G. Errores
Elizabeth Reinoso: [email protected]
![Page 21: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/21.jpg)
Análisis Semántico
Definición
Validación Tipo de resultados
intermedios Conversiones implícitas de
tipos Sobrecarga de operadores
El analizador semántico comprueba que el árbol sintáctico es semánticamente válido. Genera unárbol semántico o etiquetado
:=
A +
B C
Análisis Semántico
:=
A +
B CReal
Integer RealTabla de Símbolos
Tipo A, B, C?
Elizabeth Reinoso: [email protected]
![Page 22: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/22.jpg)
Análisis Semántico
Definición
Validación Tipo de resultados
intermedios Conversiones implícitas de
tipos Sobrecarga de operadores
El analizador semántico comprueba que el árbol sintáctico es semánticamente válido. Genera unárbol semántico o etiquetado
:=
A +
B C
Análisis Semántico
:=
A +
B CReal
Char Real
Tabla de Símbolos
Tipo A, B, C?
Elizabeth Reinoso: [email protected]
G. de Errores B (is char)
![Page 23: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/23.jpg)
Generación de Código Intermedio
Definición
Lenguajes sencillos Tercetos Cuartetos
El generador de código intermedio transforma un árbol semántico de una representación en un lenguaje intermedio cercano al código objeto
WHILE (A>B) AND (A<2*B-5) DOA:=A+B
Generación de Código Intermedio
L1: IF A>B GOTO L2 GOTO L3L2: T1 := 2*B T2 := T1 – 5 IF A< T2 GOTO L4 GOTO L3L4: A := A + B GOTO L1L3: …
![Page 24: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/24.jpg)
Optimizacion de Código
Definición
Fases Independiente de la máquina Dependiente de la máquina
Eliminación de saltos consecutivos
El optimizador de código realiza modificaciones sobre el código intermedio para mejorar la eficiencia en velocidad y tamaño.
L1: IF A>B GOTO L2 GOTO L3L2: T1 := 2*B T2 := T1 – 5 IF A< T2 GOTO L4 GOTO L3L4: A := A + B GOTO L1L3: …
L1: IF A<=B GOTO L2 T1 := 2*B T2 := T1 – 5 IF A>= T2 GOTO L2 A := A + B GOTO L1L2: …
Optimizador
![Page 25: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/25.jpg)
Optimizacion de Código
Factorizacion de Expresiones Comunes
Extracción de Invariantes
REPEAT B := 1 A := A – BUNTIL A = 0
B := 1REPEAT A := A – BUNTIL A = 0
Optimizador
A := B + C + DE := B + C + F
T1 := B + CA := T1 + DE := T1 + F
Optimizador
Elizabeth Reinoso: [email protected]
![Page 26: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/26.jpg)
Generación de Código Objeto
Definición
Lenguaje objeto Ensamblador Código máquina
El generador de código objeto transforma el código intermedio optimizado en código objeto de bajo nivel
LD AX, BLD BX, CADD AX, BXST AX, A
A := B + C Generador de código intermedio
Generador de código objeto
Elizabeth Reinoso: [email protected]
![Page 27: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/27.jpg)
Tabla de Simbolos Almacena estructuras de datos
Variables Constantes Etiquetas Tipos Valores Signatura de funciones
Operaciones Insertar símbolo Consultar símbolo Borrar símbolo
Elizabeth Reinoso: [email protected]
![Page 28: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/28.jpg)
Gestión de Errores
Detección de errores Léxicos (se delegan al sintáctico) Sintácticos Semánticos
Recuperación de errores Parar al primer error Recuperar volviendo a un contexto fiable
Elizabeth Reinoso: [email protected]
![Page 29: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.](https://reader036.fdocuments.ec/reader036/viewer/2022062519/5665b4341a28abb57c8ff2d0/html5/thumbnails/29.jpg)
[AHO] AHO, SETHI, ULLMAN: Compiladores: Principios, técnicas y herramientas,: Addison-Wesley Iberoamericana, 1990
[GARRIDO] A. Garrido, J. Iñesta, F. Moreno y J. Pérez. 2002. Diseño de compiladores. Universidad de Alicante.