next up previous
Next: Other technologies Up: Baseline Previous: Program Analysis

Program Transformation

Recently, automatic partial evaluators for Prolog have been developed [72, 66, 67] and shown to be a practical tool for real programs. Recent developments include achieving fast transformation times and extending the basic transformation strategy to full Prolog (including side effects and cut) as well as to control structures such as Gödel's pruning operator. It has been shown to be suitable for both general-purpose speeding up of programs and also meta-interpreter compilation.

Although semantics for concurrent constraint languages differ substantially from Prolog, it appears feasible to adopt ideas for partial evaluation of these languages from Prolog. Experience from program manipulation in concurrent logic programming (for example, GHC [33] and FCP [34]) and constraint logic programming (for example, [80]) will also be of great value.

Program parallelization can be seen as a (source to source) program transformation given a suitable source language. This is the case, for example, in &-Prolog and Ciao-Prolog. Since, given task dependency information from the task identification analysis, many parallelizations are possible, different heuristics can be applied in the search for optimal parallelizations [64].



<webmaster@clip.dia.fi.upm.es> Last Modified: Fri May 9 18:15:03 MET DST 1997