Tesis:

Técnicas de transformación de programas lógicos para su optimización y paralelización automática


  • Autor: BUENO CARRILLO, Francisco

  • Título: Técnicas de transformación de programas lógicos para su optimización y paralelización automática

  • Fecha: 1994

  • Materia: PROGRAMACIÓN DE COMPUTADORES;PROCESO EN PARALELO;PROLOG;AKL;OPTIMIZACIÓN

  • Escuela: FACULTAD DE INFORMATICA

  • Departamentos: INTELIGENCIA ARTIFICIAL

  • Acceso electrónico:

  • Director/a 1º: HERMENEGILDO SALINAS, Manuel

  • Resumen: La tesis propone transformaciones de programas lógicos que tienen por objetivo su optimización mediante la explotación del paralelismo en su ejecución. Se estudia el método consistente en aunar el análisis y la transformación de los programas, y se emplean como principio optimizador distintas nociones de independencia. La tesis comienza con el estudio, primero metodológico y luego experimental, de algorítmos de transformación previamente propuestos, para la paralelización a nivel de meta. El estudio identifica y propone posibles extensiones a los algoritmos, así como otros nuevos, comparándolos mediante una serie de pruebas experimentales. A continuación se discute la aplicabilidad del método a formas más evolucionadas de la programación lógica, cuales son la programación lógica concurrente, con restricciones, y concurrente con restricciones. En primer lugar, se presenta un esquema de transformación de programas Prolog a programas AKL, el cual incorpora técnicas que permiten explotar el paralelismo (basado en independencia) de forma completa en el lenguaje destino. En una segunda parte de la tesis, se desarrolla una semántica formal capaz de expresar el significado operacional de prácticamente toda la familia de los lenguajes lógicos. Esta semántica permite captar el concepto de independencia a niveles de granularidad mucho más finos que el clásico nivel de meta, lo cual da pie a identificar posibles optimizaciones aplicables a los programas lógicos, de uno y otro tipo, a niveles completamente nuevos en el cómputo. Para sacar partido de tales optimizaciones, se definen esquemas de transformación a un lenguaje destino "kernel" que hacen posible la explotación de las mismas