Vous êtes sur la page 1sur 5

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO FACULTAD DE INGENIERA PROGRAMA DE ESTUDIO

COMPILADORES
Asignatura Ingeniera Elctrica Divisin

1764
Clave Ingeniera en Computacin Departamento

7o
Semestre

09
Crditos

Ingeniera en Computacin Carrera en que se imparte

Asignatura: Obligatoria Optativa Modalidad: Curso. X

Horas: Tericas Prcticas 4.5 0.0


Aprobado: Consejo Tcnico de la Facultad

Total (horas): Semana 16 Semanas 4.5 72.0

Fecha: 25 de febrero, 17 de marzo y 16 de junio de 2005 11 de agosto de 2005

Consejo Acadmico del rea de las Ciencias Fsico Matemticas y de las Ingenieras

Asignatura obligatoria antecedente: Lenguajes Formales y Autmatas. Asignatura obligatoria consecuente: Ninguna. Objetivo(s) del curso: El alumno aplicar tcnicas y herramientas de desarrollo de compiladores para elaborar software de base (intrpretes, compiladores y otros traductores) obteniendo un software que optimice tanto memoria como desempeo. Adems el alumno podr discernir entre los diferentes traductores existentes para elaborar software eficiente y adecuado al tipo de problema a resolver. Temario
NM. NOMBRE HORAS

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Elementos para el estudio de los compiladores Anlisis lxico Anlisis sintctico Anlisis sintctico descendente Anlisis sintctico ascendente Traduccin dirigida por sintaxis Organizacin de memoria en tiempo de corrida Generacin de cdigo intermedio y anlisis semntico Optimizacin de cdigo Generacin de cdigo

8.0 8.0 6.0 8.0 10.0 8.0 6.0 6.0 6.0 6.0 72.0

Prcticas de laboratorio Total

0.0 72.0

COMPILADORES

(2 / 5)

1 Elementos para el estudio de los compiladores Objetivo: El alumno describir las etapas en el proceso de compilacin, sin importar el tipo de traductor de que se trate. Contenido: 1.1 Clasificacin de los traductores 1.2 Estructura de un compilador 1.3 Entornos de ejecucin 1.4 Consideraciones lxicas 1.5 Criterios generales de sintaxis 1.6 Problemas de traduccin 1.7 Especificacin de tipos y estructuras de datos

2 Anlisis lxico Objetivo: El alumno construir un analizador lxico a partir de la definicin de clases de componentes lxicos. Contenido: 2.1 Funciones de un Analizador Lxico 2.2 Identificacin de Clases lxicas 2.3 Estructura de las Tablas de smbolos 2.4 Manejo de errores lxicos 2.5 Programacin de un Analizador Lxico (scanner) 2.6 Generacin automtica de Analizadores Lxicos

3 Anlisis sintctico Objetivo: El alumno explicar a detalle la etapa del anlisis sintctico en el proceso de compilacin as como las gramticas idneas para definicin de la estructura de los lenguajes de programacin. Contenido: 3.1 Gramticas idneas para anlisis sintctico. 3.2 Representacin de sintaxis con gramticas BNF. 3.3 Clasificacin de los analizadores sintcticos

4 Anlisis sintctico descendente Objetivo: El alumno construir un analizador sintctico descendente a partir de una gramtica adecuada para este tipo de anlisis sintctico. Contenido: 4.1 Gramticas LL. 4.2 Construccin de la Tabla de Parser para un anlisis descendente 4.3 Manejo de errores sintcticos

COMPILADORES

(3 / 5)

4.4

Construccin de un analizador sintctico descendente recursivo

5 Anlisis sintctico ascendente Objetivo: El alumno construir un analizador sintctico ascendente a partir de una gramtica adecuada para este tipo de anlisis sintctico. Contenido: 5.1 Gramticas LR 5.2 Analizador SLR(1) 5.3 Analizador LR(1) 5.4 Analizador LALR(1) 5.5 Deteccin y recuperacin de errores. 5.6 Generadores de analizadores de sintaxis LALR(1). YACC

6 Traduccin dirigida por la sintaxis Objetivo: El alumno modificar gramticas y realizar la traduccin dirigida por la sintaxis en analizadores descendentes y ascendentes. Contenido: 6.1 Gramticas de traduccin 6.2 Manejo de la tabla de smbolos 6.3 Traduccin dirigida por sintaxis en analizadores descendentes 6.4 Traduccin dirigida por sintaxis en analizadores ascendentes

7 Organizacin de memoria en tiempo de corrida Objetivo: El alumno analizar las estructuras para manejar la memoria en el momento de ejecucin del programa. Contenido: 7.1 Gramticas de traduccin 7.2 Diferentes tipos de organizaciones 7.3 Organizacin de pila o stack 7.4 Organizacin de heap 7.5 Paso de parmetros 8 Generacin de cdigo intermedio y anlisis semntico Objetivo: El alumno describir los diferentes tipos de cdigo intermedio y el anlisis semntico Contenido: 8.1 Atributos y gramticas con atributos 8.2 Algoritmos de manejo de atributos 8.3 Lenguajes intermedios 8.4 Revisin de tipos y declaraciones 8.5 Generacin de cdigo intermedio de diferentes sentencias

COMPILADORES

(4 / 5)

9 Optimizacin de cdigo Objetivo: El alumno utilizar las diferentes tcnicas para optimizar cdigo Contenido: 9.1 Principales fuentes para la optimizacin 9.2 Optimizacin de bloques bsicos 9.3 Grafos de flujo

10 Generacin de cdigo Objetivo: El alumno utilizar las tcnicas para generar y optimizar cdigo objeto Contenido: 10.1 La mquina objeto 10.2 Tcnicas bsicas de generacin de cdigo

Bibliografa bsica:

Temas para los que se recomienda:

AHO, A. V., SETHI, Ravi, ULLMAN, J.D. Compiladores. Principios, tcnicas y herramientas. Mxico Addison-Wesley Iberoamericana, 2000 LOUDEN, Kenneth C. Compiler Construction. Principles and Practice U.S.A. Thompson Learning, 1997 PITTMAN, Thomas, PETERS, James The Art of Compiler Design; Theory and Practice Englewood cliffs New Jersey USA Prentice Hall, 1992 TREMBLAY, Jean-Paul, SORENSON, Paul G. The Theory and practice of compiler writing U.S.A. Mc. Graw-Hill, 1985

Todos

Todos

Todos

Todos

COMPILADORES

(5 / 5)

Bibliografa complementaria: BENNETT, J. P. Introduction to Compiling Techniques. A first Course using Ansi C, LEX and YACC U.S.A. Mc. Graw-Hill. Book Company Europe, 1996 KAPLAN, Randy M. Constructing Language Processor for Little Languages Portland Wiley, 1994 LEVINE, Jhon R, MASON, Tony, BROWN, Doug Lex and Yacc 2a. Edition U.S.A. OReilly, 1992 MAK, Ronald Writing Compilers and Interprets 2a. Edicin U.S.A. Willey, 1996 PRATT, T. W, ZELKOWITZ, M. V. Lenguajes de Programacin. Diseo e Implementacin. Mxico Prentice Hall, 1998 SCOTT, Michael L. Programming Language Pragmatics U.S.A. Morgan Kaufmann, 2000 Sugerencias didcticas: Exposicin oral Exposicin audiovisual Ejercicios dentro de clase Ejercicios fuera del aula Seminarios Forma de evaluar: Exmenes parciales Exmenes finales Trabajos y tareas fuera del aula Todos

Todos

2y5

Todos

Todos

X X X X

Lecturas obligatorias Trabajos de investigacin Prcticas de taller o laboratorio Prcticas de campo Otras

X X X

X X X

Participacin en clase Asistencias a prcticas Otras

X X

Perfil profesiogrfico de quienes pueden impartir la asignatura Egresado de la carrera de Ingeniero en Computacin o afn; recomendable con grado de Maestro o Doctor. Conocimientos y experiencia en el diseo y construccin de lenguajes de programacin.

Vous aimerez peut-être aussi