Subsecciones

04

Repaso 18/04/13

  1. Escriba un analizador léxico en Jison (que suponemos se guardará en un fichero calc.l) para una calculadora con números, restas, productos y menos unario

  2. Escriba el correspondiente analizador sintáctico en Jison (que suponemos se guardará en un fichero calc.jison) para una calculadora con números, productos, restas y menos unario. Deberá aceptar frases como -2.5, -3.1e2-5e3, -2*3, etc.

  3. Añada acciones semánticas a la gramática del ejercicio 2 para la evaluación de las expresiones aritméticas. Puede contestar conjuntamente a este ejercicio y al ejercicio 2

  4. Explique que conflictos aparecen en el ejercicio 2 y como los ha resuelto ¿Cómo se resuelven los conflictos en yacc? ¿Cómo se da precedencia a las reglas y a los terminales?

  5. Escriba el comando para generar el código javascript de la mini calculadora a partir de los fuentes calc.jison y calc.l

  6. Calcule los FIRST para las variables sintácticas de dicha gramática (Véase 34.5.1)
  7. Calcule los FOLLOW para las variables sintácticas de dicha gramática (Véase la sección 34.5.1)

  8. Calcule el DFA que reconoce los prefijos viables de dicha gramática (Véase la sección 35.2 y la sección 35.3.2)
  9. Simule la antiderivacion a derechas/construción del árbol de análisis sintáctico realizada usando el DFA construído en el ejercicio 8 sobre la entrada '-1-2'.

    En cada momento de la simulación indique cual es la forma sentencial derecha actual y la posición en la misma (algo como $ -e_\uparrow - NUM$), en que posición de lectura de la entrada estamos (esto es, quién es el token lookahead que se está viendo), en que estado del DFA estamos y cual es la acción tomada (desplazar o reducir).

Proyecto: Diseña e Implementa un Lenguaje de Dominio Específico

Se trata de realizar un proyecto relacionado con el procesamiento de lenguajes. El objetivo puede ser:

  1. Diseñar un lenguaje de dominio específico para simplificar cualquier tarea en la que estés interesado:

  2. Estudiar un traductor existente en profundidad como:
  3. También puedes proponer tu propio tema relacionado al profesor

Se recomienda para ello organizar equipos de no menos de dos y no mas de cuatro.

Las presentaciones de los proyectos tendrán lugar el último día de clase Martes 21 de Mayo.

Casiano Rodríguez León
2013-04-23