Programa de Prácticas


La prácticas de la asignatura consisten en la implementación de un Intérprete de una P-máquina en Java.

El proyecto se divide en las siguientes tareas:

  1. Aprendiendo el lenguaje fuente: P-código
  2. Antes de escribir un intérprete es necesario familiarizarse con el código fuente. En este los enlaces que aparecen a continuación podrá encontrar una descripción de la representación intermedia que pretendemos interpretar. [ .ps ]     [ .pdf ]

  3. Diseño del Intérprete de una P-máquina.
  4. Se implementarán en Java las clases necesarias para representar un simulador de una máquina orientada a pila. En este enlace encontrará un ejemplo simple de la forma de hacerlo.

  5. Escritura de la Gramática del Intérprete.
  6. La implementación de la gramática que hemos diseñado para nuestro lenguaje ensamblador la implementaremos utilizando la herramienta JavaCC (Java Compiler Compiler). Esta herramienta funciona como las herramientas para la construcción de compiladores estándar de Unix: lex (Lexical Generator) y yacc (Yet Another Compiler Compiler) o sus contrapartidas de libre distribución flex y bison.

    Ha herramienta javaCC se puede bajar gratis de la página web de WebGain, pero previamente hay que registrarse.

    En los siguientes enlaces puede encontar algunos ejemplos simples que vienen con dicha distribución.

  7. Acciones Semánticas del Intérprete.
  8. En este enlace encontraremos un artículo que explica el funcionamiento de jack la primera versión de javaCC.

    Los siguientes enlaces muestran algunos ejemplos simples de como poner acciones semantica a las reglas.

  9. Fichero Fuente.
  10. En este enlace se encuentra una posible implementación del método main del ensamblador en el que se define una variable Java fichero de entrada a partir de la cual se empieza a traducir a p-código.

  11. Fichero Salida.
  12. En este enlace se encuentra una posible implementación del método saveCode() de la P-Máquina para almacenar en un fichero el contenido de la misma.

  13. Librería de Apoyo del Intérprete.
  14. Diseño e Implementación de la Interface de Usuario del Intérprete.
  15. Pruebas

Herramientas: javaCC, visual Café.




A la Página Principal de Introducción a los Compiladores II