115115 Compiladores
Trimestre 2011 Invierno
Instructor: Dr. Francisco
Javier Zaragoza Martínez.
Inicio y fin del curso: lunes
17 de enero a viernes 1 de abril de 2011.
Grupo: CSI81 (martes y jueves
de 16:30
a
18:00).
Asesorías: lunes,
miércoles y viernes de 09:15 a 11:30 en la
oficina H-264.
Salón: F-001.
Cupo: 90 estudiantes.
Contenido
Se cubrirá el contenido
oficial del curso (el cual se detalla
abajo). Es posible que el temario se cubra en un
orden distinto al allí mencionado.
- Gramáticas.
- Análisis lexicográfico.
- Análisis sintáctico.
- Generación de código.
- Detección y recuperación de errores.
- Herramientas.
Evaluación
La calificación del curso consta de 50 puntos obtenidos mediante
un proyecto de programación
dividido en varias etapas y 50
puntos obtenidos mediante exámenes
parciales en la plataforma de cbienlinea.
No
habrá examen global. Además de obtener al menos 30
puntos
en los exámenes y al menos 30 puntos en el proyecto, se
requiere:
- obtener al menos un total de 60 puntos para acreditar con S,
- obtener al menos un total de 73 puntos para acreditar con B y
- obtener al menos un total de 87 puntos para acreditar con MB.
Las tareas y el proyecto se podrán entregar por correo
electrónico a
la cuenta comp en callix
y
podrán estar escritas en C o C++. Su cuenta
está en la misma máquina, a la que se pueden conectar con
ssh y que tiene
dirección IP 148.206.79.29.
Recuerden que, de acuerdo al Reglamento de
Alumnos de la UAM, es falta de los alumnos en contra de la
Institución el suplantar o permitir ser suplantado en la
realización de actividades académicas (Artículo 9)
y se impondrá desde amonestación escrita hasta
suspensión por dos trimestres (Artículo 13).
Calendario
El calendario de clases, de entrega de etapas del proyecto y de
exámenes que muestro abajo es tentativo e irá
apareciendo paulatinamente. He anotado las secciones del libro de texto
a la derecha
de cada
tema. Aquí está la cuarta parte
de las transparencias.
- 18/01: Inicio del
curso. Introducción a los compiladores [1.1 y 1.2].
- 20/01: Clase
cancelada por causas de fuerza mayor.
- 25/01: Proceso de
traducción [1.3].
- 27/01: Estructura de un compilador [1.4 y 1.5].
- 01/02: Portabilidad
[1.6]. Lenguaje y
compilador de muestra [1.7].
- 03/02: El proceso
de análisis léxico [2.1].
- 06/02 a 08/02: Primer
examen
parcial: Compiladores.
- 08/02: Lenguajes y expresiones
regulares [2.2 y 2.3]. Tarea 1 (para el 17/02).
- 10/02: Clase
cancelada por causas de fuerza mayor.
- 15/02:
Autómatas finitos y equivalencia [2.3 y 2.4].
- 17/02:
Implementación de un analizador léxico [2.5].
- 20/02 a 22/02: Segundo
examen
parcial: Análisis léxico.
- 22/02: El proceso
del análisis sintáctico [3.1] y gramáticas libres
de contexto [3.2].
- 24/02: Gramáticas libres de contexto [3.2] y
árboles
de sintaxis abstractos [3.3]. Tarea 2 (para el
08/03).
- 01/03:
Ambigüedad [3.4] y sintaxis del lenguaje de muestra [3.6].
- 03/03:
Estaré en un congreso.
- 06/03 a 08/03: Tercer
examen
parcial: Análisis
sintáctico.
- 08/03: Análisis sintáctico descendente [4.1].
- 10/03: Clase cancelada por el evento de mecatrónica.
- 15/03:
Análisis sintáctico LL(1) [4.2].
- 17/03:
Análisis sintáctico LL(1) [4.2].
- 22/03: Análisis sintáctico LL(1) [4.2].
- 24/03: Conjuntos
primero y siguiente [4.3].
- 27/03 a 29/03: Cuarto
examen
parcial: Análisis
sintáctico descendente.
- 29/03: Curso
terminado.
- 31/03: Curso
terminado.
- 05/04: No habrá más tareas o exámenes.
- 08/04: Estas son las calificaciones que
pondré en el acta.
Bibliografía
- Compiladores:
Principios,
Técnicas
y
Herramientas. Aho,
Sethi y Ullman. Addison
Wesley.
- Optimizing
Compilers
for
Modern
Architectures. Allen y Kennedy.
Morgan
Laufmann
Publishers.
- Modern
Compiler Implementation (in Java, in ML, in C). Appel. Cambridge
University Press.
- Let's Build a
Compiler. Crenshaw.
- Crafting a
Compiler. Fischer,
LeBlanc
y Cytron. Addison
Wesley.
- Modern Compiler
Design. Grune, Bal, Jacobs y Langendoen. John
Wiley & Sons.
- Construcción
de
Compiladores. Louden.
Thomson.
[Libro
de
Texto]
- How
Debuggers Work. Rosenberg. John Wiley & Sons.
- Programming
Languages:
Concepts
and
Constructs. Sethi.
Addison Wesley.
- El grupo de noticias comp.compilers
y sus preguntas frecuentes.