1. ESCUELA DE INGENIERÍAS
FACULTAD DE INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN
PROGRAMA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
CURSO: Lenguajes y Compiladores
CODIGO:
PRERREQUISITOS: Teoría de la Computación
SEMESTRE: V
INTENSIDAD HORARIA: 4 horas semanales
HABILITABLE: NO
OBJETIVOS CONTENIDO DEL CURSO
• Establecer las fases necesarias para • PRELIMINARES
entender los Compiladores actuales.
Aspectos generales e historia
• Conocer las actividades del ciclo de Importancia en el desarrollo de software
desarrollo de un compilador. Modelo de Análisis y síntesis de la compilación
Arquitectura general de un Compilador
• Implementar cada uno de los módulos
de un compilador de lenguaje de alto • ANÁLISIS LÉXICO
nivel.
Aspectos Generales de las gramáticas
PROPOSITOS DE ENSEÑANZA regulares, autómatas y diagramas de transición
Administración y clasificación de los tipos de
• Brindar a los estudiantes el datos
conocimiento asociado con el análisis Propósito general del análisis lexicográfico
de lenguajes formales y su síntesis en
Arquitectura de la fase de análisis léxico y
código de máquina.
aplicación al proyecto
Aspectos generales de la Tabla de Símbolos
• Reconocer mediante aplicación práctica
los procesos de análisis lexicográfico, Tipos de errores léxicos
gramatical y semántico, como también
los procesos de generación y • ANÁLISIS ESTRUCTURAL O
optimización de código SINTÁCTICO
respectivamente.
Aspectos generales de las gramáticas
• Proporcionar un ejercicio de síntesis independientes de contexto
sobre la teoría, los métodos y las Administración y clasificación de las estructuras
técnicas aprendidas en lenguajes de que conforman los enunciados de un lenguaje
programación, estructuras de datos, Propósito general del análisis sintáctico
análisis de algoritmos y teoría de Tipos de análisis sintácticos y mecanismos de
lenguajes formales. 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
1
2. • ANÁLISIS SEMÁNTICO (SEMÁNTICA analizador léxico de algún lenguaje de
DE LENGUAJES) programación real. La segunda consiste
en elaborar la gramática BNF del
Aspectos generales de las gramáticas lenguaje de programación.
atribuidas, tipos de atributos y su asociación
Traducción dirigida por la sintaxis
Administración y evaluación de las estructuras BIBLIOGRAFIA
que conforman un código fuente analizado
• KELLY, Dean. Teoría de Autómatas y
Propósito general del análisis semántico
Lenguajes Formales. Prentice Hall.
Mecanismos de implementación (reglas
semánticas y evaluación de atributos) • HOPCROFT Y ULLMAN. Introducción a la
Arquitectura de la fase de análisis semántica y Teoría de Autómatas, Lenguajes y
aplicación al proyecto Computación. Editorial Cecsa.
Aspectos asociados a la Tabla de Símbolos y la
generación de código • AHO, JEFEY D. ULLMAN, Alfred V. The
Tipos de errores semánticos Theory of Parsing, Translation, and
Compiling. Volume 1: Parsing. Prentice-
• ADMINISTRACIÓN DE ERRORES Hall 1972
Aspectos generales de la administración de • MARÍN, S, Diego Fernando. Material de
errores Clase Compiladores. Universidad del
Aplicación de la administración de errores en Quindío, 2004.
cada una de las fases de análisis
Mecanismos de implementación y aplicación al • AHO, SETHI, ULLMAN. Compilers.
proyecto Principles, Techniques and Tools. Addison-
Wesley 1986.
• FASE DE SÍNTESIS
• TEUFEL, Schmidt. Compiladores.
Conceptos Fundamentales. Addison
Aspectos generales de la generación de código Wesley Iberoamericana 1995
intermedio
Aspectos generales de la generación de código • AHO, A. V., HOPCROFT, J. E., y ULLMAN,
Tipos de traducción, máquinas abstractas J.D. Data Structures and Algorithms.
Optimización de código y sus estrategias de
implementación • LEWIS, H. y PAPADIMITRIOU, C.
Elements of the Theory of Computation.
METODOLOGIA
• SIPSER, Michael. Introduction to the
• El curso se desarrollará mediante Theory of Computation.
talleres de desarrollo por parte de los
estudiantes.
• Se dejarán algunos temas para Elaboró: Oscar Eduardo Sánchez García
investigación o autoestudio con asesoría Docente de Teoría de la Computación
del profesor. II Semestre Académico del 2012
Universidad Pontificia Bolivariana
• Los estudiantes desarrollarán un República de Colombia
proyecto que consta de dos partes. La
primera consiste en construir un
2