next up previous
Next: Determinación de nuevas propiedades Up: Actividades realizadas Previous: Mejora de las técnicas

Mejora de las técnicas básicas de análisis de flujo de datos:

Las herramientas de paralelización y optimización desarrolladas en el proyecto se basan en el análisis global del programa. Dicho análisis permite determinar de forma estática (en tiempo de compilación) caracterısticas que los programas tendrán en tiempo de ejecución. Un problema común a la hora de realizar el análisis de programas Prolog era la presencia habitual de primitivas extra-lógicas, de orden superior, y relacionadas con la creación dinámica de código ejecutable. Parte del trabajo del proyecto se ha dedicado a analizar cómo puede solventarse ese problema. Se ha propuesto una solución [BCHP96], combinación de ideas ya conocidas y de otras nuevas, que por primera vez permite el análisis global de una versión de Prolog completo que incluye todo el estándar ISO como un subconjunto. También se han incorporado soluciones para poder analizar programas que incluyen caracterısticas avanzadas, aunque no estén cubiertas por el estándar, como la concurrencia [MGH94], y se ha incluido en el sistema el análisis de sistemas con restricciones [GHBtex2html_wrap138896].

Un tema importante desde el punto de vista práctico, y que ofrece también retos desde el punto de vista teórico, es el de diseñar algoritmos incrementales de análisis global. Estos prueban ser de gran utilidad cuando se realizan proyectos de forma distribuida por módulos, en la fase de optimización y depuración de programas (en que un programa suele ser levemente retocado y recompilado con alta frecuencia), y al tratar con lenguajes (como es nuestro caso) que pueden variar su propio código en tiempo de ejecución. Realizar análisis incremental del programa permite reutilizar información ya hallada, y recomputar la nueva información sólo para las partes que han cambiado, con la consiguiente ganancia de tiempo. Se ha diseñado, en colaboración con la Universidad de Melbourne, lo que creemos es el primer algoritmo de análisis global incremental, y se ha demostrado que dicho algoritmo permite reanalizar programas que han variado parcialmente con una eficiencia mucho mayor que si se realizase un reanálisis completo [HPMS95].


next up previous
Next: Determinación de nuevas propiedades Up: Actividades realizadas Previous: Mejora de las técnicas

<webmaster@clip.dia.fi.upm.es> Last Modified: Fri May 9 17:59:16 MET DST 1997