Propuesta PFC: intérprete pseudocódigo LEA - módulo de depuración

El lenguaje LEA es un lenguaje de pseudocódigo que se utiliza en asignaturas como "Diseño de algoritmos" y otras de la carrera. El objetivo del proyecto consistiría en el desarrollo de un intérprete de lenguaje LEA que permitiese la evaluación, por parte de los alumnos de dichas asignaturas, de los algoritmos diseñados durante el curso. Puesto que este objetivo puede ser demasiado ambicioso como para ser resuelto en un único proyecto fin de carrera, se ha optado por dividir el proyecto global en varios subproyectos, asumibles cada uno de ellos como proyectos fin de carrera individuales.

Este proyecto en concreto consistirá en desarrollar el módulo de ayuda a la depuración de los algoritmos. El objetivo es dotar al proyecto de funcionalidades que ayuden a los alumnos a entender la implementación de los algoritmos:

  • Generación automática de diagramas de flujo de control (en formato .dot, por ejemplo).
  • Generación automática de diagramas donde se muestre, paso a paso, la evolución de las variables (punteros en los vectores, elementos en los conjuntos, valores de las variables...) elegidas por el usuario.
  • Generación automática de árboles de llamadas a funciones (para el estudio de algoritmos de exploración de grafos con retroceso, por ejempo).

Este proyecto partiría del resultado producido en la fase de compilación del intérprete. La fase de análisis del código en lenguaje LEA queda fuera del alcance de este proyecto. En dicha entrada, que estaría formateada usando el lenguaje XML, queda perfectamente especificado el número de variables de los algoritmos, sus tipos, las estructuras de control (bucles, sentencias condicionales...).

Dependiendo de la situación del alumno podría solicitarse una beca de colaboración, asociada al Departamento de Ingeniería Informática, durante la que podría trabajar en tareas relacionadas con el proyecto.

Si estás interesado y eres alumno de la Universidad de Cádiz puedes contactar conmigo en cualquier momento para obtener más información.