Next: Determinación de nuevas propiedades
Up: Actividades realizadas
Previous: Mejora de las técnicas
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 [GHB96].
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: 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