Profesor | Sofía Natalia Galicia Haro | lu mi vi | 12 a 13 | O127 |
Ayudante | Beatriz Rosales Rodríguez | ma ju | 12 a 13 | O127 |
Ayud. Lab. | Luis Miguel Estrada Ramos | ju | 16 a 18 | Taller de Lenguajes de Programación |
EVALUACION
35% Exámenes; 40% Proyecto; 25% Tareas (»4)
No hay reposiciones
TEMARIO
1. Introducción
Descripción general de un compilador
2. Análisis Léxico
2.1 Funciones
2.2 Notación: expresiones regulares
2.3 Generación de analizadores léxicos
3. Análisis Sintáctico
3.1 Sintaxis y gramáticas libres del contexto
3.2 Análisis sintáctico descendente (predictivo y gramáticas LL)
3.3 Análisis sintáctico ascendente (precedencia de operadores y LR)
3.4 Detección y recuperación de errores
4. Tabla de símbolos
5. Traducción dirigida por la sintaxis y generación de código intermedio
5.1 Definiciones dirigidas por la sintaxis
5.2 Evaluación de atributos
5.3 Lenguajes intermedios
5.4 Traducción de expresiones
5.5 Traducción de construcciones típicas de lenguajes de alto nivel
6. Generación de Código
6.1 Bloques básicos y grafos de flujo
6.2 Generador de código simple
6.3 Asignación de registros
7. Técnicas de Optimización
7.1 Optimización mediante "mirillas"
7.2 Optimización de bloques básicos
7.3 Optimización en ciclos
7.4 Análisis global del flujo de datos
BIBLIOGRAFIA BASICA
Aho A., Sethi R., Ullman J., Lam Compilers principles, techniques and tools. Addison-Wesley. 2007
Aho A., Sethi R., Ullman J. Compilers principles, techniques and tools. Addison-Wesley. 1986
Bibliografía complementaria
Keith D. Cooper y Linda Torczon, Engineering a Compiler, Morgan Kaufmann, 2004.
Michael Lee Scott, Programming Language Pragmatics, Morgan-Kauffman Publishers, 2009.
Levine, John; Mason, Tony; Brown, Doug Lex & Yacc O'Reilly & Associates, Inc. 2nd. Edition, 1992
Schreiner, A. T., Friedman Jr, H. G. Introduction to compiler construction with Unix Prentice Hall, 1985
EVALUACION
35% Exámenes; 40% Proyecto; 25% Tareas (»4)
No hay reposiciones