UNIVERSIDAD DE MENDOZA – FACULTAD DE INGENIERÍA CARRERA I.I. ASIGNATURA TEORIA DE COMPILADORES CURSO AREA T.B. 3 AÑO MATERIAS CORRELATIVAS: Profesor Titular: CODIGO 2035 ULTIMA REVISIÓN 2009 AÑO LECTIVO 2010 Ing. Alfredo A. Iglesias Profesor Titular Asociado: Profesor Adjunto: Ing. Lucas Garcia Alonso Profesor J.T.P.: Carga Horaria Semanal: Carga Horaria Total: 4 hs. 60 hs. OBJETIVOS GENERALES : Preparar al estudiante para comprender el funcionamiento y la construcción de programas compiladores. OBJETIVOS PARTICULARES: Que el alumno: Adquiera los conceptos básicos de la teoría de lenguajes formales. Entienda las máquinas secuenciales y los autómatas. Relacione la teoría de autómatas con los lenguajes formales. Conozca las técnicas para los análisis léxico, sintáctico y semántico de un leguaje de programación. PROGRAMA ANALÍTICO: CAPITULO I – GRAMATICAS Y LENGUAJES TEMA A: Introducción 1.A.1- Traducción o compilación. Metalenguajes 1.A.2 – Diagramas sintácticos. 1.A.3 – Estructura y fases de un compilador. 1.A.4 – Detección e información de errores. 1.A.5 – Generación y optimización de código intermedio. TEMA B: Tiras y Lenguajes 1.B.1- Tiras de caracteres. Componentes léxicos, patrones y lexemas. 1.B.2 – Atributos de los componentes léxicos. 1.B.3 – Errores léxicos y estrategias de recuperación. 1.B.4 – Especificación de los componentes léxicos. Cadenas y lenguajes. 1.B.5 – Operaciones aplicables a cadenas. 1.B.6 – Operaciones aplicables a lenguajes. Cierres transitivo y positivo de una relación. CAPITULO II – EXPLORADORES – ANALISIS LEXICOGRAFICO TEMA A: Expresiones regulares: 2.A.1 – Reglas de las expresiones regulares. 2.A.2 – Propiedades algebraicas de las expresiones regulares. 2.A.3 – Definiciones regulares. Ejemplos TEMA B: Autómatas de estados finitos: 2.B.1 – Reconocimiento de componentes léxicos. 2.B.2 – Autómatas finitos deterministas (AFD) y no deterministas (AFN). 2.B.3 – Representación e implementación de un autómata. 2.B.4 – Tabla compacta y matriz de transición. TEMA C: Generación de autómatas: 2.C.1 – Generación de autómatas a partir de expresiones regulares 2.C.2 – Autómata programado. 2.C.3 – Paso de una expresión regular a un AFN. Construcción de Thompson. 2.C.4 – Conversión de un AFN en un AFD. CAPITULO III: ANALISIS SINTACTICO TEMA A: Análisis Sintáctico: 3.A.1 – El papel del analizador sintáctico. 3.A.2 – Manejo de errores sintácticos, estrategias para la recuperación de errores. 3.A.3 – Gramáticas regulares e independientes de contexto. 3.A.4 Lenguaje definido por una gramática. 3.A.5 Árboles sintácticos y derivaciones. TEMA B: Gramáticas LL1 : 3.B.1 – Análisis sintáctico por descenso recursivo. 3.B.2 – Gramáticas recursivas por la izquierda, factorización. 3.B.3 –Análisis sintáctico predictivo, diagramas de transiciones. 3.B.4 Análisis sintáctico predictivo no recursivo. Símbolos iniciales y siguientes. 3.B.5 Algoritmos de construcción de tablas de análisis. TEMA C: Relaciones de precedencia: 3.C.1 – Gramática de operadores, relaciones de precedencia entre operadores. 3.C.2 – Análisis sintáctico ascendente por precedencia de operadores. 3.C.3 Funciones de precedencia. TEMA D: Análisis sintáctico LR: 3.D.1 – Técnicas de análisis sintáctico LR(k). 3.D.2 Algoritmos de análisis sintáctico ascendente LR. 3.D.3 Análisis sintáctico SLR y canónico. 3.D.4 Análisis sintáctico LALR, obtención de tablas de análisis. CAPITULO IV: ANALISIS SEMANTICO TEMA A: Semántica 4.A.1 –Traducción dirigida por la sintaxis. 4.A.2 – Definiciones dirigidas por la sintaxis. 4.A.3 -. TEMA B: Atributos; 4.B.1 – Funciones semánticas y atributos. 4.B.2 – Atributos Heredados. 4.B.3 – Atributos sintetizados. 4.B.4 - Verificación de tipos. TEMA C: Construcción de Árboles Sintácticos. 4.C.1 - Funciones de construcción de árboles sintácticos. 4.C.2 - Uso de definiciones dirigidas por la sintaxis. 4.C.3 – Árboles y Grafos dirigidos asíclicos. 4.C.4 Esquemas de traducción CAPITULO V: GENERACION DE CODIGO TEMA A: Lenguajes Intermedios: 5.A.1 – Árboles sintácticos como primera traducción. 5.A.2 – Código de tres direcciones. 5.A.3 Tipos de proposiciones de tres direcciones. 5.B.4 Notación polaca inversa. Rutinas semánticas TEMA B: Implantación de código de tres direcciones: 5.B.1 – Notación de tercetos 5.B.2 – Notación de cuartetos. 5.B.3 – Notación de tercetos indirectos. Comparación entre las notaciones. CAPITULO VI: TABLA DE SÍMBOLOS TEMA A: Tabla de símbolos: 5.A.1. Tablas de símbolos con estructura de bloques 5.A.2 Apertura y cierre de bloques. 5. A.3 Métodos de acceso. Tabla lineal y tabla ordenada. 5.A.4 Árboles binarios. Formación Práctica Resolución de Problemas Rutinarios: Laboratorio, Trabajo de Campo: Resolución de Problemas Abiertos de ingeniería: Proyecto y Diseño: Horas 15 PROGRAMA DE TRABAJOS PRÁCTICOS: Práctico Nº 1: Diseño de un autómata a partir de una expresión regular. Práctico Nº 2: Construcción de un explorador léxico sencillo en “C”. Práctico Nº 3: Construcción de un analizados sintáctico sencillo en “C”. ARTICULACIÓN HORIZONTAL Y VERTICAL DE CONTENIDOS: Los contenidos abordados en esta materia se basan en conceptos de las siguientes cátedras: Asignatura Curso Comparte e integra elementos horizontalmente con las siguientes cátedras: Asignatura Curso Arquitectura de computadoras (2034) Los contenidos abordados en esta materia aportan conceptos a las siguientes cátedras: Asignatura Curso Computación II (2038) 3° Año CONDICIONES PARA REGULARIZAR LA MATERIA y RÉGIMEN DE EVALUACIÓN: El alumno deberá: aprobar el 100% de los prácticos. Cumplir con el 80% de asistencia Rendir un examen final. Presentar carpeta de Trabajos Prácticos BIBLIOGRAFÍA: BIBLIOGRAFÍA PRINCIPAL: Autor Título A. aho, R.sethi, j Dean Kelley. Cases MuñozVillodre. Compiladores principios, técnicas y herramientas Teoría de autómatas y lenguajes formales Lenguajes, gramáticas y autómatas – Curso básico apuntes de Cátedra: tablas de símbolos. ESTRATEGIAS DIDÁCTICAS UTILIZADAS : Clases exponenciales. Trabajos en grupos Proyectos. RECURSOS DIDÁCTICOS UTILIZADOS : Multimedia. Medios informáticos. Editorial Año Ed. Pearson Prentice Hall Prentice Hall 1º edición Alfaomega 2002 2006 Laboratorios