Contenido Compiladores

5
Á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 INGENIERIA FACULTAD 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: 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)

description

Contenido Compiladores

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