Técnicas de transformación de programas lógicos para su optimización y paralelización automática
- Bueno Carrillo, Francisco José
- Manuel de Hermenegildo Salinas Director
Defence university: Universidad Politécnica de Madrid
Year of defence: 1994
- José Cuena Bartolomé Chair
- Ana M. García Serrano Secretary
- Saumya K. Debray Committee member
- Francesca Rossi Committee member
- Juan José Moreno Navarro Committee member
Type: Thesis
Abstract
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 algoritmos de transformación previamente propuestos, para la paralelizacion a nivel de meta. El estudio identifica y propone posibles extensiones a los algoritmos, asi como otros nuevos, comparandolos mediante una serie de pruebas experimentales. A continuacion se discute la aplicabilidad del método a formas mas 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 mas finos que el clasico 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 computo. 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.