CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES...

29
CONDICIONES DE LA CONDICIONES DE LA MATERIA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES COMPILADORES Elizabeth Reinoso [email protected]

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.

CONDICIONES DE LA CONDICIONES DE LA MATERIAMATERIA

Universidad Nacional de JujuyFacultad de Ingeniería

COMPILADORESCOMPILADORES

Elizabeth Reinoso

[email protected]

Page 2: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

DOCENTES DE LA MATERIA

PROFESOR A CARGO

ING. ELIZABETH REINOSO

CORREO: [email protected]

[email protected]

PROFESORA DE PRACTICAS

ING. FABIANA ARAGON

CORREO: [email protected]

Elizabeth Reinoso: [email protected]

Usuario
Page 3: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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]

Usuario
Page 4: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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]

Usuario
Page 5: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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]

Usuario
Page 6: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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]

Usuario
Page 7: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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]

Usuario
Page 8: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

INTRODUCCIONINTRODUCCION

Universidad Nacional de JujuyFacultad de Ingeniería

COMPILADORESCOMPILADORES

Elizabeth Reinoso

[email protected]

Page 9: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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]

Usuario
Page 10: CONDICIONES DE LA MATERIA Universidad Nacional de Jujuy Facultad de Ingeniería COMPILADORES Elizabeth Reinoso edrreinoso@fi.unju.edu.ar.

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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