diseño de compiladores

13
Departamento de Tecnologías de la Información Ciencias de la Computación e Inteligencia Artificial Diseño de Compiladores

Upload: dinhnhi

Post on 13-Feb-2017

233 views

Category:

Documents


1 download

TRANSCRIPT

Departamento de Tecnologías de la Información

Ciencias de la Computación e Inteligencia Artificial

Diseño de

Compiladores

Presentación

Diseño de Compiladores 2

Profesores

Francisco José Moreno Velo

http://www.uhu.es/francisco.moreno/

[email protected]

Teléfono: 959 21 76 59

Despacho: Edif. Torreumbría TUPB-14

Tutorías (primer cuatrimestre) (El Carmen):

Martes, de 11:00 a 13:00

Miércoles, de 10:30 a 13:30

Viernes, de 12:00 a 13:00

Presentación

Diseño de Compiladores 3

Horario

– Teoría:

• Miércoles, de 8:30 a 10:30.

• Edificio Galileo, aula 2.2.

– Prácticas:

• Miércoles, de 17:00 a 19:00.

• Aulario José Isidoro Morales, aula B.3.

Presentación

Diseño de Compiladores 4

Contenido

• http://www.uhu.es/francisco.moreno/gii_dc/

Presentación

Diseño de Compiladores 5

Competencias

Competencias específicas

– CE2-C: Capacidad para conocer los fundamentos teóricos de los

lenguajes de programación y las técnicas de procesamiento

léxico, sintáctico y semántico asociadas, y saber aplicarlas para

la creación, diseño y procesamiento de lenguajes.

Presentación

Diseño de Compiladores 6

Contexto

Contexto dentro de la titulación

• Asignatura optativa de 4 curso de la titulación donde se profundiza en las

técnicas para el diseño adecuado de compiladores.

Presentación

Diseño de Compiladores 7

Objetivos

Objetivos

• Conocer e implementar las diferentes fases del proceso de compilación de los

lenguajes imperativos: análisis, gestión de memoria y generación de código.

• Conocer e implementar las técnicas básicas de optimización de código.

• Conocer las técnicas básicas de gestión de memoria dinámica.

Presentación

Diseño de Compiladores 8

Temario

Temario teórico (provisional)

Tema 1: Introducción a los Compiladores

Tema 2: Análisis léxico

Tema 3: Análisis sintáctico

Tema 4: Análisis semántico

Tema 5: Organización y gestión de la memoria

Tema 6: Optimización de código

Tema 7: Alojamiento en registro

Tema 8: Programación orientada a objetos

Tema 9: Programación funcional

Presentación

Diseño de Compiladores 9

Temario

Temario práctico (provisional)

Práctica 1. El compilador del lenguaje Tinto

Práctica 2. Conjunto de instrucciones

Práctica 3. Operadores de bit

Práctica 4. Operadores de incremento, decremento y asignación

Práctica 5. Tipos de datos byte y short

Práctica 6. Tipo de dato long

Práctica 7. Tipos de datos en coma flotante (float y double)

Práctica 8. Constantes y variables globales

Práctica 9. Optimización local

Práctica 10. Clases y objetos

Práctica 11. Tipo de dato array

Práctica 12. Herencia

Práctica 13. Recolección de basura

Presentación

Diseño de Compiladores 10

Evaluación

• Forma de evaluación:

– Dividida en dos partes: teórica y práctica

– La parte teórica se evalúa en el examen final

– La parte práctica se evalúa por medio de un trabajo individual

• Calificación global:

– La calificación final será la media entre la calificación teórica y práctica

– Se requiere un mínimo de 4.0 puntos en cada parte

– Calificación teórica (50%): Nota del examen

– Calificación práctica (50%): Nota del trabajo (40%) y seguimiento del

alumno (10%).

Presentación

Diseño de Compiladores 11

Convocatorias

• Convocatoria de febrero

– Martes, 6 de febrero de 2018, 16:00 horas.

• Convocatoria de septiembre

– Martes, 4 de septiembre de 2017, 16:00 horas.

Presentación

Diseño de Compiladores 12

Bibliografía

Bibliografía

• A.V. Aho. "Compiladores. Principios, Técnicas y Herramientas",

Addison-Wesley Iberoamericana (1998).

• Manuel Alfonseca Moreno y otros. "Compiladores e Intérpretes:

teoría y práctica", Pearson, Prentice Hall (2006).

Presentación

Diseño de Compiladores 13

Bibliografía

Bibliografía

• Andrew W. Appel. "Modern compiler implementation in

Java(second edition)", Cambridge (2002).