Universidad Católica “Nuestra Señora de Asunción”
Sede Regional Asunción
Facultad de Ciencias y Tecnología
Departamento de Ingeniería Electrónica e Informática
Carrera de Ing. Electrónica, Ing. Informática
COMPILADORES
CÓDIGO: CYT828
CARRERA: Ing. Informática
SEMESTRE: 9º
CORRELATIVAS: Informática 1, Lenguaje de Programación 3
CARGA HORARIA SEMANAL: 6 horas
HORAS TOTALES: 108 horas
HORAS TEÓRICAS: 88 horas
HORAS PRÁCTICAS: 20 horas
DESCRIPCIÓN DEL CURSO:
Este curso presenta los elementos básicos, tanto teóricos y prácticos para la
construcción de compiladores e interpretes. Se estudian las diferentes técnicas de
análisis e implementación para la elaboración de los mismos.
OBJETIVOS:
El alumno estará apto para comprender y utilizar las técnicas de construcción de
compiladores, como así también valerse de las herramientas de implementación
disponibles en la actualidad.
SÍNTESIS DEL PROGRAMA:
Conceptos básicos. Compiladores de una pasada. Análisis léxico. Análisis sintáctico.
Traducción dirigida por la sintaxis. Comprobación de tipos. Ambientes de ejecución.
Generación de código intermedio generación de código. Optimización de código.
PROGRAMA ANALÍTICO
1. Conceptos básicos.
Análisis de programa fuente. Fases del compilador. Sistemas relacionados.
Agrupamiento de fases. Herramientas de construcción.
2. Compiladores de una pasada.
Definición de la sintaxis. Traducción dirigida por la sintaxis. Análisis sintáctico.
Análisis léxico. Tablas de símbolos. Maquinas de pila abstracta.
3. Análisis léxico.
Funciones del analizador. Manejo de buffers de entrada, especificación y
reconocimiento de componentes léxicos. Lenguajes de especificación. Autómatas.
Expresiones regulares y autómatas. Diseño de analizadores léxicos.
4. Análisis sintáctico.
Funciones del analizador. Gramáticas libres de contexto. Análisis descendente. Análisis
ascendente. Análisis por precedencia de operadores. Analizadores LR. Generadores de
analizadores sintácticos.
DEPARTAMENTO DE ELECTRÓNICA E INFORMATICA.
5. Traducción Dirigida por la Sintaxis.
Definiciones Dirigidas por la Sintaxis. Esquemas de Traducción. Atributos
sintetizados y heredados. Evaluaciones Ascendentes y descendentes.
6. Sistemas de Tipos.
Expresiones de Tipo. Sistemas de Tipos. Equivalencias de tipos. Coerciones.
Polimorfismo.
7. Notaciones intermedias y ambiente de ejecución.
Código Intermedio. Implementaciones en construcciones de lenguajes. Semántica de
procedimientos. Técnicas de administración de memoria.
8. Generación y Optimización de Código.
Criterios de Optimización de Código Bloques Básicos y transformaciones de código.
Estrategias de mejoras de código, a través de Grafos y Arboles. Mirilla y
optimizaciones de flujo.
METODOLOGÍA:
Se establecen el desarrollo de clases en conjunto. Docente - Alumnos. Con antelación
se realizan asignaciones de puntos del programa, a un grupo de alumnos de 2(dos)
integrantes, quien bajo supervisión y coordinación del docente encargado son
desarrollados y evaluados en clase.
BIBLIOGRAFÍA PRINCIPAL:
1. " Compiladores Principios Técnicas y Herramientas”, Pressman Ullman Aho.
Addison-Wesley. 1985.
BIBLIOGRAFÍA ALTERNATIVA:
2. AHO, A. V.; LAM, M. S.; SETHI, R.; ULLMAN, J. D.: "COMPILERS. PRINCIPLES, TECHNIQUES
AND TOOLS" 2ª ED. ADDISON-WESLEY. 2007.
3. "INTRODUCTION TO COMPILING TECHIQUES". BENETT, J. P.:
REDACCIÓN ORIGINAL:
Prof. Lic. Enrique Goossen, Prf. Ing. Luis Martínez
ÚLTIMA REVISIÓN:
Ing. Luis Martínez, julio/2016
APROBADO POR CONSEJO DE DEPARTAMENTO EN FECHA:
25 de octubre del 2004, mediante nota Nro. 120/04
APROBADO POR CONSEJO DE FACULTAD EN FECHA:
16 de diciembre del 2004, mediante acta Nro. 12/04
DEPARTAMENTO DE ELECTRÓNICA E INFORMATICA.