Imprimir

Programa

CURSO              :    Construccion de Compiladores
SIGLA              :    IIC2322
CRÉDITOS           :    10
REQUISITOS         :    IIC1222 Programacion Avanzada;
                        IIC2222 Teoria de Automatas y Lenguajes Formales
SEMESTRE           :    I


1. OBJETIVOS
   Proveer al alumno con principios y tecnicas utiles para la construccion de compiladores. El
   enfasis del curso es en las tecnicas usadas en el dise?o de compiladores, en los modelos
   teoricos que apoyan esas tecnicas, y en la forma de implementar compiladores en un
   lenguaje de programacion de alto nivel. Al finalizar el curso, el alumno conocera y sera
   capaz de dise?ar e implementar las distintas componentes de un compilador.

2. CONTENIDO
   - Introduccion: Traductores. Estructura de un compilador. Compilando un compilador.
      Lenguajes de programacion.
   - Analisis lexico: Objetivo. Uso de expresiones regulares y automatas finitos. Generacion
      de un analizador lexico. Errores lexicos.
   - Analisis sintactico: Gramaticas libres de contexto. Arboles de derivacion. Analizadores
      shift-reduce. Analizadores LR. Analizadores descendentes. Errores sintacticos.
   - Tabla de simbolos: Contenido y utilidad. Estructuras de datos apropiadas.
      Representacion del alcance de los nombres. Errores semanticos.
   - Generacion de codigo Intermedio: Traducciones dirigidas por sintaxis. Algunos
      lenguajes intermedios. Traduccion de expresiones y estructuras de control.
   - Organizacion de la memoria durante la ejecucion: Un esquema simple de stack.
      Lenguajes con estructuras de bloques. Traduccion de llamados.
   - Introduccion a la optimizacion de codigo: Principales fuentes de optimizacion.
      Optimizacion en iteraciones. Grafos de flujo.
   - Generacion de codigo: Problemas en la generacion de codigo. Formas de generacion de
      codigo. Asignacion de registros. Generacion de codigo para expresiones. Algunas
      mejoras simples.

3. BIBLIOGRAFIA
   Complementaria:
        AHO, Alfred, SETHI, Ravi and ULLMAN, Jeffrey D. Compilers: principles,
            techniques and tools. Reading, Mass., Addison Wesley, 1986.
        FRASER, Christopher and HANSON, David R. A retargetable C compiler: design
            and implementation. Menlo Park, CA., Addison Wesley, 1995.
        HOLUB, Allen. Compiler design in C. Englewood Cliffs, N.J., Prentice Hall, 1990.
        PITTMAN, Thomas and PETERS, James. The art of compiler design: theory and
            practice. Englewood Cliffs, N.J., Prentice Hall, 1992.
        WIRTH, Niklaus. Compiler construction. Harlow, England, Addison Wesley, 1996.