Contenido Compiladores
-
Upload
lina-castro -
Category
Documents
-
view
220 -
download
2
description
Transcript of Contenido Compiladores
ÁREA DE FORMACIÓN INGENIERÍA APLICADA ÁREA SEGÚN ECAES INFORMÁTICA BÁSICA
PROGRAMA DE LA ACTIVIDAD ACADÉMICA COMPILADORES REFORMA CURRICULAR 2004
FACULTAD DE INGENIERIAFACULTAD DE INGENIERIA
UNIVERSIDAD DEL QUINDÍO FACULTAD DE INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN ACTIVIDAD ACADÉMICA: COMPILADORES CÓDIGO Diurno: 110220602 Nocturno: 110220602 SEMESTRE Diurno: Sexto Nocturno: Sexto REQUISITOS: Teoría de lenguajes formales CRÉDITOS: 3 INTENSIDAD HORARIA: 4 horas semanales HABILITABLE: Si VALIDABLE: Sí TIPO: Teórico – Práctica 1. JUSTIFICACIÓN La asignatura de compiladores busca brindar a los estudiantes el conocimiento asociado con el análisis de lenguajes formales y su síntesis en código de máquina. En este contexto se espera que el estudiante conozca y ponga en práctica los procesos de análisis lexicográfico, gramatical y semántico, como también los procesos de generación y optimización de código respectivamente. En esta asignatura se ponen en juego, desde un punto de vista aplicado, los conocimientos adquiridos a lo largo de la carrera. Proporciona un buen ejercicio de síntesis sobre la teoría, los métodos y las técnicas aprendidas en lenguajes de programación, estructuras de datos, análisis de algoritmos y teoría de lenguajes formales. Es una asignatura imprescindible para completar la formación básica en Ingeniería de Sistemas y Computación.
2. OBJETIVOS
• Introducir las ideas principales que subyacen al proceso de compilación • Presentar los conceptos de lenguaje y gramática. • Estudiar en detalle las distintas fases lógicas de un compilador. • Desarrollar un compilador para la traducción de un lenguaje especificado por el
profesor o uno diseñado por los estudiantes en base al contenido teórico aprendido durante el curso.
3. RESUMEN
• Introducción a los compiladores • Análisis léxico • Análisis estructural o sintáctico • Análisis semántico (semántica de lenguajes)
ÁREA DE FORMACIÓN INGENIERÍA APLICADA ÁREA SEGÚN ECAES INFORMÁTICA BÁSICA
PROGRAMA DE LA ACTIVIDAD ACADÉMICA COMPILADORES REFORMA CURRICULAR 2004
FACULTAD DE INGENIERIAFACULTAD DE INGENIERIA
• Administración de errores • Fase de síntesis • Otros temas de interés
4. CONTENIDO
UNIDAD I: INTRODUCCIÓN A LOS COMPILADORES
• Aspectos generales e historia • Importancia en el desarrollo de software • Modelo de Análisis y síntesis de la compilación • Arquitectura general de un Compilador
UNIDAD II: ANÁLISIS LÉXICO
• Aspectos Generales de las gramáticas regulares, autómatas y diagramas de transición • Administración y clasificación de los tipos de datos • Propósito general del análisis lexicográfico • Arquitectura de la fase de análisis léxico y aplicación al proyecto • Aspectos generales de la Tabla de Símbolos • Tipos de errores léxicos
UNIDAD III: ANÁLISIS ESTRUCTURAL O SINTÁCTICO
• Aspectos generales de las gramáticas independientes de contexto • Administración y clasificación de las estructuras que conforman los enunciados de un
lenguaje • Propósito general del análisis sintáctico • Tipos de análisis sintácticos y mecanismos de implementación • Arquitectura de la fase de análisis sintáctico y aplicación al proyecto • Aspectos asociados a la Tabla de Símbolos y la generación de código • Tipos de errores sintácticos
UNIDAD IV: ANÁLISIS SEMÁNTICO (SEMÁNTICA DE LENGUAJ ES)
• Aspectos generales de las gramáticas atribuidas, tipos de atributos y su asociación • Traducción dirigida por la sintaxis • Administración y evaluación de las estructuras que conforman un código fuente
analizado • Propósito general del análisis semántico • Mecanismos de implementación (reglas semánticas y evaluación de atributos) • Arquitectura de la fase de análisis semántica y aplicación al proyecto • Aspectos asociados a la Tabla de Símbolos y la generación de código • Tipos de errores semánticos
ÁREA DE FORMACIÓN INGENIERÍA APLICADA ÁREA SEGÚN ECAES INFORMÁTICA BÁSICA
PROGRAMA DE LA ACTIVIDAD ACADÉMICA COMPILADORES REFORMA CURRICULAR 2004
FACULTAD DE INGENIERIAFACULTAD DE INGENIERIA
UNIDAD V: ADMINISTRACIÓN DE ERRORES
• Aspectos generales de la administración de errores • Aplicación de la administración de errores en cada una de las fases de análisis • Mecanismos de implementación y aplicación al proyecto
UNIDAD VI: FASE DE SÍNTESIS
• Aspectos generales de la generación de código intermedio • Aspectos generales de la generación de código • Tipos de traducción, máquinas abstractas de pila • Optimización de código y sus estrategias de implementación • Mecanismos de implementación y aplicación al proyecto
UNIDAD VII: OTROS TEMAS DE INTERÉS
• Herramientas para la generación de compiladores (Metacompiladores)
5. METODOLOGÍA
Al ser una asignatura teórico – práctica su metodología se basa en un conjunto de mecanismos para dar soporte a la enseñanza teórica de los conceptos propios de esta y a la ejecución y seguimiento del proyecto de semestre. Durante el curso se desarrollará un proyecto software consistente en la construcción de un compilador. Dicho producto software deberá ir acompañado de su respectiva documentación. Los estudiantes durante el semestre deberán entregar informes parciales de avance”release”del compilador.
MÉTODOS DE EJECUCIÓN
Exposición magistral por parte del profesor, lecturas previas por parte del estudiante, lecturas de apoyo a los temas, presentación de temas por parte de los estudiantes, reuniones para discusión de temas, formulación de problemas, ejemplos y ejercicios sobre los temas de las asignaturas y estudio de casos reales. La metodología asociada a cada tema será indicada por el profesor en la primera clase.
RECURSOS
Herramientas para el desarrollo del proyecto RATIONAL SUITE ENTERPRISE. Rational Software Corporation. Java Standar Edition como lenguaje de programación J Creador, Eclipse y Net Beans como ambientes de desarrollo
ÁREA DE FORMACIÓN INGENIERÍA APLICADA ÁREA SEGÚN ECAES INFORMÁTICA BÁSICA
PROGRAMA DE LA ACTIVIDAD ACADÉMICA COMPILADORES REFORMA CURRICULAR 2004
FACULTAD DE INGENIERIAFACULTAD DE INGENIERIA
6. EVALUACIÓN
Dos evaluaciones parciales Evaluación de talleres, informes parciales y presentaciones Evaluación de trabajo final Presentación de proyecto final “Construcción de un Compilador”
7. SEGUIMIENTO
Talleres individuales o en equipo, realización de Quices no necesariamente con previo aviso, asesorías personalizadas y en grupo, presentación de informes de avance.
8. REFERENCIAS BIBLIOGRÁFICAS
[1] MARÍN S., Diego Fernando. Material de Clase Compiladores. Universidad del Quindío, 2004.
[2] AHO, SETHI, ULLMAN. Compilers. Principles, Techniques and Tools. Addison-Wesley
1986. [3] AHO, JEFEY D. ULLMAN, Alfred V. The Theory of Parsing, Translation, and
Compiling. Volume 1: Parsing. Prentice-Hall 1972. [4] TEUFEL, Schmidt. Compiladores. Conceptos Fundamentales. Addison Wesley
Iberoamericana 1995.
[5] IBM. Rational Software. Rational Unified Process. Versión 2003. [6] ANDREW W. APPEL, JENS PALSBERG. Modern Compiler Implementation in Java,
Second Edition 2002.
[7] SERGIO GÁLVEZ ROJAS, MIGUEL ÁNGEL MORA MATA. Java a Tope: Traductores
y Compiladores con Lex/Yacc, JFlex/Cup y JavaCC, 2005 2005. Fecha de la última actualización: 5 de Febrero de 2007. ___________________________________ LEONARDO ALONSO HERNÁNDEZ Coordinador de Área
ÁREA DE FORMACIÓN INGENIERÍA APLICADA ÁREA SEGÚN ECAES INFORMÁTICA BÁSICA
PROGRAMA DE LA ACTIVIDAD ACADÉMICA COMPILADORES REFORMA CURRICULAR 2004
FACULTAD DE INGENIERIAFACULTAD DE INGENIERIA
Fecha Versión Descripción Autor 5 de Febrero de 2007
Se eliminó el prerrequisito de Análisis de algoritmos II.
Profesores del área, coordinador Leonardo Hernández