You are on page 1of 4

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLN LICENCIATURA EN MATEMTICAS APLICADAS Y COMPUTACIN PROGRAMA DE ASIGNATURA ACATLN

CLAVE: 1052 COMPILADORES


LNEA DE FORMACIN MODALIDAD (CURSO, TALLER, LABORATORIO, ETC.)

SEMESTRE: 8 (OCTAVO)

SISTEMAS COMPUTACIONALES
CARACTER HORAS SEMESTRE HORA / SEMANA TERICA PRCTICA CRDITOS

CURSO
ASIGNATURA PRECEDENTE SUGERIDA ASIGNATURA CONSECUENTE SUGERIDA

OPTATIVO

64

8 (OCHO)

TEORA DE LA COMPUTACIN NINGUNA

OBJETIVO: EL ALUMNO APLICAR LOS CONCEPTOS FUNDAMENTALES DE LA TEORA DE LOS LENGUAJES FORMALES Y LOS AUTMATAS, AS MISMO, CONOCER LAS HERRAMIENTAS Y TCNICAS QUE LE PERMITAN DISEAR Y CONSTRUIR UN COMPILADOR. Nmero de horas Unidad 1. CONCEPTOS BSICOS DE COMPILADORES 6 Objetivo: El alumno analizar el desarrollo del software y conocer las fases en las que se divide la tarea de un compilador para pasar de cdigo fuente a cdigo objeto. Temas: 1.1 Evolucin de los lenguajes de programacin (desde Basic hasta Java). 1.2 Definicin de: compilador, ensamblador, traductor e intrprete. 1.3 Estructura lgica de un compilador. Nmero de horas Unidad 2. ANALIZADOR LEXICOGRFICO (SCANNER) 10 Objetivo: El alumno conocer las tcnicas y herramientas que le permitan llevar a cabo la primera fase de compilacin. Temas: 2.1 Expresiones y gramticas regulares. 2.2 Autmatas de estados finitos como reconocedores de un lenguaje. 2.3 Programacin de un scanner. 2.4 Generacin automtica de un scanner utilizando LEX o aplicacin de conceptos con AWK.

80

Nmero de horas Unidad 3. ANALIZADOR SINTCTICO (PARSER) 20 Objetivo: El alumno aprender un bosquejo sobre el funcionamiento de los analizadores de sintaxis ms importantes y las caractersticas principales de estas gramticas. Temas: 3.1 Gramticas y otras tcnicas para definir lenguajes: notacin BNF, diagramas de sintaxis. 3.2 Gramticas ambiguas y rboles de derivacin. 3.3 Derivacin izquierda y derecha. 3.4 Anlisis sintctico ascendente LR(k), SLR(1), LALR. 3.5 Recursin por la izquierda. 3.6 Anlisis sintctico descendente LL(1). 3.7 Aplicacin de la teora del parseo con YACC. Nmero de horas Unidad 4. ANALIZADOR SEMNTICO Y MANEJO DE ERRORES 14 Objetivo: El alumno comprender el objetivo del anlisis semntico y conocer las tcnicas de deteccin y recuperacin de errores. Temas: 4.1 Definicin del anlisis semntico. 4.2 Verificacin esttica (tiempo de compilacin) y dinmica (tiempo de ejecucin). 4.3 Traduccin dirigida por la sintaxis. 4.4 Deteccin de errores en cada fase: lxico, sintctico y semntico. 4.5 Informe de errores. 4.6 Recuperacin de errores. Nmero de horas Unidad 5. TABLA DE SMBOLOS Y ORGANIZACIN DE MEMORIA EN TIEMPO DE CORRIDA 8 Objetivo: El alumno conocer las organizaciones posibles para la tabla de smbolos, las estructuras para manejar la memoria en el momento de la ejecucin del programa Temas: 5.1 La importancia de la tabla de smbolos en los lenguajes declarativos y los no declarativos. 5.2 Estructuras de datos para la tabla de smbolos. 5.3 Manejo esttico de memoria. 5.4 Manejo dinmico de memoria: recursividad y asignacin durante la ejecucin.

81

Nmero de horas Unidad 6. GENERACIN DE CDIGO INTERMEDIO 6 Objetivo: El alumno conocer las notaciones empleadas para crear cdigo intermedio. Temas: 6.1 Notacin polaca inversa como apoyo para la generacin de cdigo. 6.2 Notacin de tercetos. 6.3 Notacin de cuartetos. 6.4 Asignacin de memoria. 6.5 Generacin de cdigo. 6.6 Optimizacin de cdigo intermedio.

BIBLIOGRAFA BSICA Aho, et. al., Compiladores principios, tcnicas y herramientas, Addison Wesley, Mxico, 1998 Appel y Palsberg, Modern compiler implementation in Java, Cambridge University, E.U.A., 2002 Fischer y Leblanc, Crafting a compiler, The Benjamin/Cummings Publishing Company, E.U.A., 1991 Karen, A., Fundamentos de compiladores. Cmo traducir al lenguaje de computadora, CECSA, Mxico, 1996 Teufel y Schmidt, Compiladores Iberoamericana, Argentina, 1993 BIBLIOGRAFA COMPLEMENTARIA Levine y Mason, Lex & Yacc, OReilly, E.U.A., 1992 Tremblay, S., An implementation guide to compiler writing, Prentice Hall, E.U.A., 1982 SUGERENCIAS DIDCTICAS Introducir y exponer los temas y contenidos de las diferentes unidades, con ejemplos claros sencillos. Propiciar la participacin de los alumnos con prcticas individuales y/o en equipo de acuerdo a los temas analizados. Supervisar y guiar a los alumnos cuando los temas sean expuestos y desarrollados por ellos. conceptos fundamentales, Addison Wesley

82

Desarrollar programas mediante el uso de paquetes computacionales aplicando los mtodos estudiados en el curso. Realizar investigaciones sobre aplicaciones de la materia en diferentes campos de la actividad humana.

SUGERENCIAS DE EVALUACIN Participacin en clase. Exmenes parciales. Trabajos de investigacin sobre conceptos tericos. Trabajos de investigacin sobre aplicaciones. Proyecto final de aplicacin. Examen final.

PERFIL PROFESIOGRFICO QUE SE SUGIERE El profesor que impartir el curso deber tener el ttulo de Licenciado (o maestro) en Matemticas, Matemticas Aplicadas y Computacin, Ingeniero en computacin o de carreras afines.

83

You might also like