Propuesta PFC: intérprete pseudocódigo LEA - módulo de análisis
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 deberá llevar a cabo la fase de análisis del compilador del lenguaje, esto es, deberá llevar a cabo el análisis léxico, sintáctico y semántico de los ficheros fuentes, que contienen algoritmos escritos en lenguaje LEA. Como resultado deberá generarse un fichero en un lenguaje intermedio (en formato XML, por ejemplo) con la especificación de los algoritmos descritos en LEA, de tal forma que el siguiente módulo de la arquitectura (ajeno a este proyecto) pueda generar el código equivalente en el lenguaje de destino (c, c++, java,...) y así poder llevar a cabo su ejecución.
El proyecto partirá de la especificación del lenguaje LEA, que será entregada al alumno en forma de gramática EBNF al comienzo del proyecto. También se le entregará el código fuente de un prototipo parcialmente funcional que actualmente lleva a cabo los análisis léxico y sintáctico. En el análisis semántico deberán realizarse las comprobaciones de tipos, la asignación de tipos a las variables según su uso...
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.
PSeInt es una aplicación parecida que puede utilizarse para evalar la dificultad del proyecto. Puede obviarse la generación de diagramas de flujo.
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. El proyecto ha sido realizado y defendido con éxito por José Crespo.