Ir al Menú

Escuela Técnica Superior de Ingenieros Informáticos

Universidad Politécnica de Madrid

Traductores de Lenguajes

Estás aquí: Inicio > Práctica

Práctica

Contenido:


Normas de la Práctica

Las Prácticas están propuestas para ser realizadas en grupos de un tamaño máximo de 3 personas. En la valoración de estas Prácticas no se tendrá en cuenta el número de alumnos que componen el grupo, las dificultades de coordinación surgidas dentro del grupo, etc.

La Práctica consiste en el diseño e implementación de un Generador de Código Intermedio y un Generador de Código Ensamblador (que tenga en cuenta el Entorno de Ejecución) para un determinado lenguaje de programación. El trabajo se abordará de una manera incremental, partiendo del Analizador Léxico, el Analizador Sintáctico, el Analizador Semántico y la Tabla de Símbolos (realizados en la Práctica de Procesadores de Lenguajes) y completándolo con el Generador de Código Intermedio y el Generador de Código (que tenga en cuenta el Entorno de Ejecución). El Traductor construido deberá generar uno de los códigos ensamblador indicados en la página de Herramientas

Los estudiantes deben formar los grupos de trabajo basándose en los grupos creados para la asignatura de Procesadores de Lenguajes (aunque no es imprescindible que se mantengan todos los miembros del grupo de dicha asignatura y se permite mezclar grupos).

Funcionamiento del Traductor

El Traductor deberá leer el programa fuente de un archivo de texto y entregar varios archivos de texto (código intermedio y código ensamblador). Ha de tener obligatoriamente el siguiente funcionamiento:

Para poder ejecutar el programa objeto obtenido, deberá utilizarse alguna de las Herramientas de Ensamblador que se ofrecen en esta web.

Presentación

La presentación de la práctica consiste en:

Calificación

Para poder aprobar la asignatura, será condición imprescindible que la Práctica esté completa (Generador de Código Intermedio y Generador de Código Final implementados).

La Práctica constituye el 40% de la calificación global de la asignatura. La nota ponderada de la Práctica se sumará a la obtenida de ponderar la calificación de la parte teórica, siempre que ninguna de ellas antes de la ponderación sea inferior a 4 (véanse las normas generales de Traductores de Lenguajes).

Plazos de entrega

Las fechas tope para entregar y demostrar el funcionamiento del Traductor en el examen oral son las siguientes.

Especificación de la Práctica

La Práctica que hay que realizar consiste en el diseño y construcción de un traductor completo de un subconjunto del lenguaje JS llamado JS-PdL. Toda la información del lenguaje que hay que tener en cuenta para esta Práctica se ha recogido en un resumen de las características de JS-PdL. Si bien la especificación sintáctica completa del lenguaje JS puede encontrarse en los libros, documentación y manuales de JavaScript (Bibliografía de JavaScript), el lenguaje JS-PdL es una simplificación de JavaScript.

Para la implementación del Traductor se podrá utilizar cualquier lenguaje de programación o herramienta, siempre que su resultado se pueda ejecutar en un PC, preferentemente bajo Windows.

Lenguaje JS-PdL

Deben incluirse las características generales de JS-PdL. El fuente estará en un único fichero con extensión ".javascript" o ".txt", que contendrá un programa con todas las definiciones necesarias en su interior.

La parte común a todos los grupos tendrá que incorporar, al menos:

Parte específica de cada grupo:

Técnicas de Análisis

Cada grupo tendrá un método de Análisis Sintáctico:

Las opciones de la Práctica de construcción de un Traductor de JS-PdL asignadas a cada grupo son las que se asignaron en la asignatura de Procesadores de Lenguajes.

DRACO

DRACO

La Web

W3C:

XHTML 1.1 válido

CSS 2.1 válido

Accesibilidad:

P. 2 (UNE 139803)

AA (WCAG 2.1)

Web Master

Mapa

Último cambio:

28-agosto-2023