Procesadores de Lenguaje

Titulación: Ingeniería Informática
Plan de Estudios: 1992 (modificado 1998)
Web de la asignatura: http://www.uam-virtual.es/course/view.php?id=1689
Ciclo/Curso/Semestre: Segundo Ciclo / Tercer Curso / Segundo Semestre
Tipo de materia: Troncal
Créditos: 9,0 
Código de asignatura: 11336
Objetivos: El objetivo de este curso son las técnicas utilizadas para construir procesadores de lenguaje (compiladores e intérpretes).

La asignatura se estructura mediante los distintos módulos que forman un compilador: Analizador morfológico. Analiazador sintáctico (ascendentes y descendentes). Analizador semántico. Tabla de símbolos. Generador (y optimizador) de código y optimizadores. Gestor de memoria y errorres.

También son objeto de la asignatura las diferencias entre compiladores e intérpretes.

El enfoque de la asignatura pretende resaltar la naturaleza práctica de la misma que puede entenderse como una aplicación de los conocimientos teóricos adquiridos previamente en la asignatura Teoría de Autómatas y Lenguajes Formlaes I (de 2º curso ).

Las sesiones teóricas se dedican a los algoritmos, técnicas y estructuras de datos necesarios para llevar a cabo todas estas funciones.

Durante la parte práctica de la asignatura que se realiza en los laboratorios, los estudiantes deben desarrollar un compilador completo para un lenguaje de programación de alto nivel diseñado específicamente para este propósito.
Recomendaciones: Antes de matricularse de Procesadores de Lenguaje se recomienda haber aprobado Teoría de Autómatas y Lenguajes Formales I.
Metodología Docente: Exposiciones por parte del profesor sobre temas teóricos y problemas. Participación de los alumnos en la realización de problemas y dudas sobre las exposiciones sobre teoría. Solución de problemas en clase.
Programa:
  1. Introducción
  2. Análisis morfológico
  3. Análisis sintáctico (técnicas ascendentes)
  4. Tabla de símbolos
  5. Análisis semántico
  6. Generación de código
  7. Optimización de código
  8. Análisis sintáctico (técnicas descendentes)
  9. Consideraciones sobre análisis semántico y generación de código con analizadores descendentes)
  10. Otras técnicas de análisis sintáctico (gramáticas de precedencia)
  11. Intérpretes
  12. Tratamiento de errores
  13. Gestión de memoria
Bibliografía orientativa:
  1. Alfonseca, M., de la Cruz, M., Ortega, A., Pulido, E. Compiladores e intérpretes: teoría y práctica, Pearson, 2006.
  2. Aho, A.V., Sethi, R., Ullman, J.D., Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing Company, Reading, MA, 1986. Traducción español, Compiladores: principios, técnicas y herramientas, Pearson Education, 1990-98.
  3. Alfonseca, M. Enrique Alfonseca, Roberto Moriyon. Teoría de Autámatas y Lenguajes Formales, McGraw Hill, 2007. ISBN: 978-84-481-5637-4.
  4. Alfonseca, M., Sancho, J., Martínez Orga, M.A., Teoría de Lenguajes, Gramáticas y Autómatas. Universidad y Cultura, Madrid, 1987.
  5. Grune, D., Modern Compiler Design, Wiley, 2000.
  6. Marcotty, M., Ledgard, H.F., Bochmann, G.V., A Sampler of Formal Definitions. Computing Surveys, 8:2, pp. 191-276, June 1976.

Catálogo Biblioteca - Bibliografía Recomendada

Coordinador/a teoría: Mariano Rico
Coordinador/a prácticas: Marina de la Cruz
Profesorado: Teoría: Prácticas:
Evaluación:

Volver al plan de estudios