Diseño de Compiladores

Titular: Lic. Alfredo Vega Weiss

Download

Contenido

  • Introducción
  •     Arquitectura tradicional de un compilador
        Etapas de análisis. Un compilador - vista rápida
        Diseño de un lenguaje. Pros y contras
  • Análisis Léxico.Sintáctico
  •     Distintas herramientas standard para la automatización del proceso
  • Tablas de Símbolos
  •     Definición. Nombres y bindings. Scopes Construcción de la TS durante el parsing
  • Análisis semántico
  •     Sistemas de tipos. Tipos hardware/básicos; tipos construidos por el programador. Semántica de los tipos de los lenguajes standard. Soporte de runtime.
  • Código Intermedio
  •     Generación de una representación intermedia. Evaluación de expresiones. Estructuras de control. Análisis de las distintas construcciones utilizadas en los lenguajes standard.
  • Código Objeto
  •     Generación de código objeto. Asignación de registros.
  • Optimización
  •     Técnicas de optimización
  • Runtime
  •     Disposición en memoria. Acceso a nombres no locales.
        Administración de memoria. Garbage collection
        Pasaje de parámetros
  • Linking
  • Debugging simbólico
  • Entornos integrados de desarrollo
  • Proyecto

    El proyecto realizado durante el transcurso del cuatrimestre consiste en la evaluación y diseño de un nuevo lenguaje, y el diseño e implementación de un compilador para el mismo. El lenguaje, llamado MQR es un subconjunto acotado del lenguaje Java, compilándose a código assembler para una arquitectura 80x86. El compilador, se desarrolla utilizando el lenguaje Java, junto con algunas herramientas y librerías diseñadas específicamente para el proyecto.

    Bibliografía

  • Aho, Setti, Ullman: Compiladores, principios, técnicas y herramientas Adison Wesley
  • Fischer, Grodzinsky: The Anatomy of programming Languajes, Prentice Hall International
  • Stroustrup The C++ ProgrammingLanguaje Addison Wesley
  • http://java.sun.com/docs/index.html
  • Requisitos

  • Teoría de Lenguaje y Automatas
  • RecomendadoArquitectura y Sistemas Operativos

  • Download Archivos de la materia