Facultad de Ingeniera de Sistemas e Informtica Escuela Acadmico Profesional de Ingeniera de Sistema
SI LABO
2007-I I
I. GENERALIDADES
1.1 Nombre del curso Lenguajes y traductores 1.2 Semestre acadmico 2007-II 1.3 Carcter Obligatorio 1.4 Cdigo del curso 206004 1.5 Nmeros de crditos 03 1.6 Carcter Obligatorio 1.7 Duracin Semestral 1.8 Horas semanales Teora : 2 Practica: 2 1.9 Pre-requisito 203004 1.10 Profesor Augusto Cortez Vsquez Carlos Ruiz de la Cruz Melo J aime Ruben Pariona Quispe
II DESCRIPCION
La asignatura de Lenguajes y traductores es un curso desarrollado en forma terica-prctico, que describe las formas de definir un lenguaje formal mediante gramticas, expresiones regulares y autmatas. Se describen las fases de anlisis y sntesis del proceso de compilacin y las herramientas para la construccin de los mdulos que realizan cada una de las fases.
III SUMILLA Las unidades temticas son: Lenguajes y Gramticas. Expresiones regulares y Autmatas finitos. Lenguajes libres del contexto y autmatas de Pila. Anlisis Lxico Anlisis Sintctico Anlisis semntico Tabla de simbolos Generacin de cdigo intermedio Optimacion de cdigo Generacin de cdigo Manejo de errores.
IV OBJETIVOS
1 Objetivos
1.1 Objetivos Generales:
Proveer conceptos matemticos e informticos que son fundamento terico para el avance de la ciencia de la computacin, informtica y sistemas. Como materia terica prctica pretende informar y ejercitar a los estudiantes en las tcnicas y mtodos para definir un lenguaje formal y la construccin de traductor haciendo uso de software y un entorno en el que se pueda aplicar la Programacin Orientada a Objetos.
1.2 Objetivos Especficos:
Capacitar al alumno en los conocimientos fundamentales para definir un lenguaje formal. Capacitar al alumno en los conocimientos fundamentales para la construccin de Compiladores para traduccin de los Lenguajes de programacin de alto nivel Exponer y discutir las caractersticas de diseo, fundamentos tericos, y los algoritmos que se utilizan en cada componente as como las herramientas avanzadas de desarrollo de compiladores dando nfasis en las reas de Teora de Lenguajes, Lenguajes de Programacin y Algoritmos
V. FINALIDAD
Al finalizar el curso el alumno deber tener los conocimientos tericos prcticos para poder definir un lenguaje formal y utilizar las herramientas mas adecuadas para la construccin de su traductor.
La finalidad es lograr por parte del alumno una aprehensin y comprehensin de los conceptos utilizados en la ciencia de la computacin y fomentar una actitud de creatividad e ingenio en el desarrollo de lenguajes y traductores.
VI PROGRAMA
El desarrollo del curso se realiza en base a clases terico - prcticas por parte del profesor y a un sistema de enseanza-aprendizaje-investigacin (SEAI) o practicas continuas por parte de los alumnos, en la que mayoritariamente y predominantemente los alumnos estn en actividad mental y/o fsica con respecto al profesor. En ella se producen los estmulos necesarios, propiciando la motivacin indispensable para la realizacin del aprendizaje. La estructura de desarrollo del curso se asienta en una mixtura de mtodos activos en la que la participacin de los alumnos les permite estar en permanente actividad mental. Los grupos no podrn ser mayores al 10% del total de alumnos inscritos en el curso.
VII CONTENIDO PROGRAMATICO
Aspectos Formales 1 ra Semana :
Lenguajes y gramticas Formales : alfabeto, lenguajes, smbolos terminales y no terminales. J erarqua de lenguajes, Clasificacin de Chomsky. Forma Normal de Backus ( BNF ). Pre requisito : es necesario repasar los conceptos estudiados en el curso de Matemticas Discretas: Lenguajes formales, gramticas formales.
Lenguajes de programacin . Compiladores : clases y estructura bsica Diseo del compilador : descripcin de las fases, anlisis lexicogrfico (scanner) Anlisis Sintctico ( parser), Anlisis Semntico, Generacin de cdigo intermedio, generacin de cdigo objeto, tratamiento y recuperacin de errores, administracin de la tabla de smbolos
Expresiones regulares. Construccin de autmatas finitos. Autmatas deterministas y autmatas no deterministas.
Pre requisito : es necesario repasar los conceptos estudiados en el curso de Matemticas Discretas : Grafos y maquinas de estados finitos.Diagramas de transicin y matriz de transicin.
Lenguajes de contexto libre y autmatas de pila 4 ta Semana :
Lenguajes libres del contexto. Construccin de autmatas de pila. Pre requisito : es necesario repasar los conceptos estudiados en el curso de Matemticas Discretas : Grafos y maquinas de estados finitos.Diagramas de transicin y matriz de transicin.Pilas y primitivas de acceso. Bibliografa [AHO 1990] Cap. 3 [HOPCROFT 1993] Cap.4-5-6
[BROOKSHEAR 1989] Cap.2
Anlisis Lexicogrfico 5 ta Semana :
Funciones y reconocimiento de tokens. Especificacin de los componentes lexicogrficos. Gramticas regulares . Tratamiento y recuperacin de errores lexicogrficos. Autmatas finitos y su implantacin
Pre requisito : es necesario repasar los conceptos estudiados en el curso de Matemticas Discretas : Lenguajes y gramticas formales, expresiones regulares, grafos, autmatas finitos, matriz de transicin.
Bibliografa
[AHO 1990] Cap. 3 [TEUFEL 1995] Cap. 3
Anlisis Sintctico 6 ta Semana :
Mtodos de anlisis sintctico: descendente y ascendente. Otros tipos de parser. Analizadores sintcticos LL. Construccion de tabla de anlisis sintctico.
Pre requisito : es necesario repasar los conceptos estudiados en el curso de estructura de datos: arboles y grafos
Tabla de smbolos : uso, estructura, organizacin, primitivas de acceso. Pre requisito: Repasar los temas de Estructuras de Datos, Organizacin de archivos mtodos de bsqueda y clasificacin de los cursos de Algortmicas y Estructura de Datos
En todas las exposiciones los grupos debern exponer el resultado de su proyecto, con la participacin de todos los alumnos del bloque que podrn opinar y aportar sugerencias a los proyectos de sus compaeros
Examen final 16 ta Semana :
Examen Sustitutorio 17 ta Semana :
VIII METODOLOGIA
Las clases de la parte terica se desarrollarn en aula presentando las principales tcnicas aplicadas a cada una de las fases del diseo de compiladores. Adems se combinarn con lecturas obligatorias compuestas por artculos o captulos de libros que se discutir en clase, por lo que stos deben ser ledos antes de clase. El Laboratorio tiene como objetivo guiar al alumno en la implementacion del proyecto del curso.
IX SISTEMA DE EVALUACION
El promedio final del curso ser calculado como un promedio ponderado segn muestra el siguiente cuadro:
Concepto Porcentaje Responsable Examen Parcial Teora 30 Profesor de Teora Examen Final Teora 40 Profesor de Teora Promedio de 30 Profesor de Practica Prctica-Laboratorio
Durante el curso se desarrollara un proyecto el cual ser evaluado tanto por el profesor de Laboratorio como por el profesor de teora
X FUENTES BIBLIOGRAFICAS
[AHO 1990] Aho A., Sethi R.., Ullman J . - Compiladores, Principios, Tecnicas y herramientas. Adisson-Wesley. 1990. Wilmington Delaware EUA
[BROOKSHEAR 1989] Brookshear J . Teoria de la computacion, lenguajes formales, automatas y complejidad. Adisson-Wesley. 1989. Wilmington Delaware EUA
[CORTEZ 2005] Augusto Cortez Vasquez. Lenguajes y traductores. UNMSM FISI Lima 2002
[GRASSMANN 1997] Grassmann W., Tremblay J . Matematica discreta y logica. 1997. Prentice Hall Hispanoamericana
[HOPCROFT 1993] Hopcroft J ., Ullman J . Introduccion a la teoria de automatas, lenguajes y computacion. CECSA 1993 EUA
[KOLMAN 1989] Kolman B. Busby R. Estructuras de matematicas discretas para la computacion. 1989. Prentice Hall Hispanoamericana
[PRATT 1998] Pratt, T. - Zelkowitz, M. Lenguajes de programacion, diseo e implementacion. 1998. Prentice Hall Hispanoamericana
[SETHI 1992] Sethi R. - Lenguajes de programacion, Conceptos y constructores. Adisson-Wesley. 1992. Wilmington Delaware EUA