Profesor | Sofía Natalia Galicia Haro | lu mi | 17 a 18:30 | P118 |
Ayudante | Luis Miguel Estrada Ramos | ma ju | 16 a 17 | P118 |
Ayud. Lab. | Beatriz Rosales Rodríguez | mi | 14 a 16 | 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
2.5 Tabla de símbolos
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. Medio Ambiente de un programa al tiempo de ejecución
4.1 Organización de la memoria
4.2 Asignación de la memoria
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
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.
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