|
Propuestas de proyectos de Trabajo Fin de Grado (TFG) curso 2024-2025
- Procesadores de lenguaje en Prolog
DES (http://des.sourceforge.net) es un sistema de bases de datos deductivas que incorpora distintos lenguajes de consulta sobre un modelo relacional de datos. Entre estos lenguajes se encuentran: SQL, álgebra relacional, los cálculos relacionales de dominios y tuplas, y Datalog. DES aplica un procesador de lenguaje para traducir expresiones de estos lenguajes a Datalog (el lenguaje que utiliza internamente como procesador de consultas). Sin embargo, todos los procesadores menos el de SQL funcionan en una única pasada, combinando los análisis léxico y sintáctico, lo que en algunos casos degrada su rendimiento significativamente. Si bien el procesador de SQL está completo, aún no está integrado en el sistema. El objetivo de este proyecto será desarrollar e integrar en DES los nuevos procesadores para álgebra relacional, los cálculos relacionales de dominios y tuplas, y Datalog. Todo el desarrollo se realizará en el lenguaje de programación Prolog y, dependiendo del número de alumnos, se abordarán uno o más de estos lenguajes, siendo el álgebra relacional el lenguaje prioritario. Por lo tanto, será interesante que los miembros del TFG tengan conocimiento de estas nociones que se imparten en asignaturas como "Procesadores de lenguajes", "Lenguajes de programación y procesadores de lenguaje", "Programación declarativa" o "Programación con restricciones". Contacto: fernan@sip.ucm.es
- Procesador paramétrico inteligente de lenguajes en Java
Los editores de programas incluidos en herramientas como Eclipse se caracterizan por ofrecer no solo un coloreado de los elementos léxicos (tokens) del lenguaje (Java, por ejemplo) sino también indicar la construcción incorrecta de los bloques sintácticos (como un bucle "for" con su cuerpo mal escrito). En este proyecto se continuará un TFG del curso anterior para completar el editor de ACIDE (acide.sourceforge.net) con esta capacidad, que permite seleccionar la gramática a aplicar a cada documento. Cada una de estas gramáticas es el parámetro de entrada el editor, que ajusta su análisis con respecto a ella. Además de identificar el error y marcarlo, se realizará una conexión con un LLM (como GPT, Gemini...) para explicar el motivo del error. También se escribirán gramáticas para distintos lenguajes (SQL, Datalog, álgebra y cálculos relacionales...), y para cada una de ellas se añadirán sugerencias de autocompletado en el editor, tanto de palabras clave como de bloques de código. Opcionalmente se podrán abordar otras tareas para la mejora del sistema ACIDE. Es recomendable haber cursado asignaturas tales como "Procesadores del Lenguaje" y "Fundamentos de Lenguajes Informáticos". Contacto: fernan@sip.ucm.es
- DBCASE en Java
DBCASE (Database Computer-Aided Software Engineering, https://sourceforge.net/projects/dbcase) es una herramienta para el diseño de bases de datos relacionales. Integra las tres etapas clásicas de diseño (conceptual, lógico y físico), dando soporte a distintos gestores (Oracle, MySQL, Access). Permite el diseño gráfico de diagramas entidad-relación y traducciones automáticas a los esquemas lógico (modelo relacional) y físico (SQL). Es una aplicación de escritorio implementada en Java y multiplataforma. El objetivo del proyecto actual es completar y ampliar sus funcionalidades en la aplicación de escritorio escrita en Java para incluir nuevas construcciones de diseño conceptual (como distintas notaciones para las cardinalidades) y posibilitar un diseño reactivo de los esquemas lógico y físico en términos de las estadísticas de uso (consultas, volúmenes de datos y frecuencias de uso) y de las indicaciones manuales del usuario. También podrás proponer mejoras y alternativas a estas tareas. Contacto: fernan@sip.ucm.es
- Conector ODBC para DES
ODBC (Open Database Connectivity) es una API estándar para el acceso a fuentes de datos, principalmente bases de datos relacionales, que fue desarrolada por Microsoft y Simba. Actualmente existen conectores (drivers) ODBC a la mayoría de bases de datos (MySQL, PostreSQL, DB2...) e incluso a otras fuentes como Excel y ficheros CSV. En este proyecto se desarrollará un nuevo conector ODBC para el sistema de bases de datos deductivas DES (des.sourceforge.net), que incorpora varios lenguajes de consulta sobre estructuras de datos relacionales. El lenguaje de desarrollo habitual para estos conectores es C, y se puede partir de la documentación de Microsoft (docs.microsoft.com/en-us/sql/odbc/reference/develop-driver/developing-an-odbc-driver) e implementaciones open-source ya desarrolladas tales como PostgreSQL y MySQL. Dado que DES no soporta consultas concurrentes, será necesario implementar en el propio conector su gestión. Dependiendo del número de alumnos se podrán desarrollar conectores no solo para Windows, sino también para Linux y macOS. Contacto: fernan@sip.ucm.es
- Reingeniería de bases de datos SQL en DBCASE
La reingeniería de bases de datos SQL es el proceso de analizar y modificar el esquema de una base de datos existente para mejorarla en algún aspecto (rendimiento, escalabilidad, nuevos requisitos...). DBCASE es un sistema de diseño de bases de datos relacionales disponible tanto en su versión web (HTML, JavaScript..., desweb.fdi.ucm.es:8080) como de escritorio (Java, dbcase.sourceforge.net) que incorpora las etapas de diseño conceptual, lógico y físico, permitiendo su automatización en este orden. El objetivo de este trabajo es permitir la automatización en el orden inverso: a partir de un esquema físico (definición de tablas y restricciones) obtener un esquema relacional y, de este, un esquema entidad-relación. Dependiendo del número de alumnos se abordarán ambas versiones de DBCASE o solo una. Contacto: fernan@sip.ucm.es
- Simulador de la calculadora SHARP PC-1500
En el museo MIGS de la facultad podemos encontrar la calculadora programable SHARP PC-1500 (www.fdi.ucm.es/migs/catalogo/pc_1500). Originaria del año 1981 en Japón, se distribuyó la versión europea solo un año más tarde. Pese a su temprana introducción, ya supuso una primera versión de lo que conocemos actualmente por computadores portátiles. Incluye un intérprete BASIC (un lenguaje que resiste en nuestros días en sus versiones Visual) y capacidad de ser programada en código máquina de su procesador LH5801, similar al bien conocido Zilog Z80. Esta característica la distinguía de otros competidores como CASIO, que hasta más tarde no introducirían estas capacidades (si bien limitadas a un procesador virtual). El objetivo de este TFG consiste en el desarrollo de un simulador de esta calculadora en un lenguaje como C o C++ capaz de procesar sus instrucciones máquina simuladas a la (baja) frecuencia del procesador original. Si bien esto no la hacía particularmente rápida, bastaban cuatro pilas AA para meses de uso. Contacto: fernan@sip.ucm.es
- Compilador optimizador para el lenguaje BASIC de la SHARP PC-1500
En el museo MIGS de la facultad podemos encontrar la calculadora programable SHARP PC-1500 (www.fdi.ucm.es/migs/catalogo/pc_1500). Originaria del año 1981 en Japón, se distribuyó la versión europea solo un año más tarde. Pese a su temprana introducción, ya supuso una primera versión de lo que conocemos actualmente por computadores portátiles. Incluye un intérprete BASIC (un lenguaje que resiste en nuestros días en sus versiones Visual) y capacidad de ser programada en código máquina de su procesador LH5801, similar al bien conocido Zilog Z80. Esta característica la distinguía de otros competidores como CASIO, que hasta más tarde no introducirían estas capacidades (si bien limitadas a un procesador virtual). El objetivo de este TFG consiste en el desarrollo de un compilador optimizador para el lenguaje BASIC de esta calculadora. Como ejes ortogonales de optimización se podrán considerar tanto la minimización del espacio ocupado por el código nativo resultado de la compilación como la del tiempo de ejecución. Como lenguaje de desarrollo se podrá usar Prolog, para el que ya hay desarrollado un procesador del lenguaje BASIC. No obstante, se podrá usar otro lenguaje teniendo siempre en cuenta su carácter multi-plataforma con objeto de poder ejecutar el compilador en distintos sistemas operativos. Por lo tanto, será interesante que los miembros del TFG tengan conocimiento de estas nociones que se imparten en asignaturas como "Procesadores de lenguajes", "Lenguajes de programación y procesadores de lenguaje", "Programación declarativa" o "Programación con restricciones". Contacto: fernan@sip.ucm.es
- ¿Tienes una idea propia y necesitas que alguien te la dirija?
Dependiendo de mi carga docente, podría echarte una mano. Contacto: fernan@sip.ucm.es
|
|