Lenguajes y compiladores
Transcript of Lenguajes y compiladores
ESCUELA DE INGENIERÍASFACULTAD DE INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓNPROGRAMA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
CURSO: Lenguajes y CompiladoresCODIGO:PRERREQUISITOS: Teoría de la ComputaciónSEMESTRE: VINTENSIDAD HORARIA: 4 horas semanalesHABILITABLE: NO
OBJETIVOS
Establecer las fases necesarias para entender los Compiladores actuales.
Conocer las actividades del ciclo de desarrollo de un compilador.
Implementar cada uno de los módulos de un compilador de lenguaje de alto nivel.
PROPOSITOS DE ENSEÑANZA
Brindar a los estudiantes el conocimiento asociado con el análisis de lenguajes formales y su síntesis en código de máquina.
Reconocer mediante aplicación 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.
Proporcionar un 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.
CONTENIDO DEL CURSO
PRELIMINARES
Aspectos generales e historiaImportancia en el desarrollo de softwareModelo de Análisis y síntesis de la compilaciónArquitectura general de un Compilador
ANÁLISIS LÉXICO
Aspectos Generales de las gramáticas regulares, autómatas y diagramas de transiciónAdministración y clasificación de los tipos de datosPropósito general del análisis lexicográficoArquitectura de la fase de análisis léxico y aplicación al proyectoAspectos generales de la Tabla de SímbolosTipos de errores léxicos
ANÁLISIS ESTRUCTURAL O SINTÁCTICO
Aspectos generales de las gramáticas independientes de contextoAdministración y clasificación de las estructuras que conforman los enunciados de un lenguajePropósito general del análisis sintácticoTipos de análisis sintácticos y mecanismos de implementaciónArquitectura de la fase de análisis sintáctico y aplicación al proyectoAspectos asociados a la Tabla de Símbolos y la generación de códigoTipos de errores sintácticos
1
ANÁLISIS SEMÁNTICO (SEMÁNTICA DE LENGUAJES)
Aspectos generales de las gramáticas atribuidas, tipos de atributos y su asociaciónTraducción dirigida por la sintaxisAdministración y evaluación de las estructuras que conforman un código fuente analizadoPropósito general del análisis semánticoMecanismos de implementación (reglas semánticas y evaluación de atributos)Arquitectura de la fase de análisis semántica y aplicación al proyectoAspectos asociados a la Tabla de Símbolos y la generación de códigoTipos de errores semánticos
ADMINISTRACIÓN DE ERRORES
Aspectos generales de la administración de erroresAplicación de la administración de errores en cada una de las fases de análisisMecanismos de implementación y aplicación al proyecto
FASE DE SÍNTESIS
Aspectos generales de la generación de código intermedioAspectos generales de la generación de códigoTipos de traducción, máquinas abstractas Optimización de código y sus estrategias de implementación
METODOLOGIA
El curso se desarrollará mediante talleres de desarrollo por parte de los estudiantes.
Se dejarán algunos temas para investigación o autoestudio con asesoría del profesor.
Los estudiantes desarrollarán un proyecto que consta de dos partes. La primera consiste en construir un
analizador léxico de algún lenguaje de programación real. La segunda consiste en elaborar la gramática BNF del lenguaje de programación.
BIBLIOGRAFIA
KELLY, Dean. Teoría de Autómatas y Lenguajes Formales. Prentice Hall.
HOPCROFT Y ULLMAN. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Editorial Cecsa.
AHO, JEFEY D. ULLMAN, Alfred V. The Theory of Parsing, Translation, andCompiling. Volume 1: Parsing. Prentice-
Hall 1972
MARÍN, S, Diego Fernando. Material de Clase Compiladores. Universidad del Quindío, 2004.
AHO, SETHI, ULLMAN. Compilers. Principles, Techniques and Tools. Addison-Wesley 1986.
TEUFEL, Schmidt. Compiladores. Conceptos Fundamentales. Addison Wesley Iberoamericana 1995
AHO, A. V., HOPCROFT, J. E., y ULLMAN, J.D. Data Structures and Algorithms.
LEWIS, H. y PAPADIMITRIOU, C. Elements of the Theory of Computation.
SIPSER, Michael. Introduction to the Theory of Computation.
Elaboró: Oscar Eduardo Sánchez GarcíaDocente de Teoría de la ComputaciónII Semestre Académico del 2012Universidad Pontificia BolivarianaRepública de Colombia
2