## A Comparative Revisitation of Some Program Transformation Techniques (1996)

Venue: | Partial Evaluation, Int'l Seminar, Dagstuhl |

Citations: | 21 - 0 self |

### BibTeX

@INPROCEEDINGS{Pettorossi96acomparative,

author = {Alberto Pettorossi and Maurizio Proietti},

title = {A Comparative Revisitation of Some Program Transformation Techniques},

booktitle = {Partial Evaluation, Int'l Seminar, Dagstuhl},

year = {1996},

pages = {355--385},

publisher = {Springer LNCS}

}

### Years of Citing Articles

### OpenURL

### Abstract

. We revisit the main techniques of program transformation which are used in partial evaluation, mixed computation, supercompilation, generalized partial computation, rule-based program derivation, program specialization, compiling control, and the like. We present a methodology which underlines these techniques as a `common pattern of reasoning' and explains the various correspondences which can be established among them. This methodology consists of three steps: i) symbolic computation, ii) search for regularities, and iii) program extraction. We also discuss some control issues which occur when performing these steps. 1 Introduction During the past years researchers working in various areas of program transformation, such as partial evaluation, mixed computation, supercompilation, generalized partial computation, rule-based program derivation, program specialization, and compiling control, have been using very similar techniques for the development and derivation of programs. Unfor...

### Citations

2003 |
Abstract interpretation: a unified lattice model for static analysis of programs by construction of approximation of fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...k for suitable properties which hold for every computation performed by the initial program. These properties can often be discovered by applying the general technique, called abstract interpretation =-=[13]-=-, by which we represent a possibly infinite set of concrete computations, one for every input value, by a single symbolic computation, and then by reasoning on that symbolic computation. Various model... |

604 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ...is section we revisit a familiar example of program derivation using a functional language based on first-order recursive equations and the unfold/fold transformation system with rules and strategies =-=[10, 40]-=-. This revisitation allows us to present in a concrete case the three steps of the general methodology for program transformation we want to introduce, namely, i) symbolic computation, ii) search for ... |

239 | Tutorial notes on partial evaluation
- Consel, Danvy
- 1993
(Show Context)
Citation Context ...ial evaluation is a well-known program transformation technique which allows us to derive a new program from an old one when part of the input data is known before evaluation. The reader may refer to =-=[12, 21, 26]-=- for introductions and surveys on this topic. In the case of logic programming, where partial evaluation is also called partial deduction, it is usually assumed that we are given an initial program P ... |

102 | Fast and Precise Regular Approximations of Logic Programs
- Gallagher, Waal
- 1994
(Show Context)
Citation Context ...tion-based techniques we would like to mention the techniques for binding time analysis [27, 34] and the regular approximation techniques for approximating the least Herbrand model of a logic program =-=[23]-=-. The second and third steps of the program specialization methodology correspond to what we have called here `extraction of the new program'. In this paper we have only pointed out the derivation tec... |

92 |
The promotion and accumulation strategies in transformational programming
- BIRD
- 1984
(Show Context)
Citation Context ...ow, by using the abstract interpretation technique. Ideas related to compiling control have also been investigated in the area of functional programming within the so called filter promotion strategy =-=[4, 14]-=-, whereby function evaluations can be anticipated for avoiding unnecessary computations and improving program behaviour. In the following example we will see in action the compiling control technique.... |

75 | A General Framework for Semantics-Based Bottom-Up Abstract Interpretation of Logic Programs
- Barbuti, Giacobazzi, et al.
- 1993
(Show Context)
Citation Context ...d the set of all (ground and nonground) terms, form the domain of an abstract interpretation which is a lattice. (The reader unfamiliar with abstract interpretations in logic programming may refer to =-=[2, 6, 32]-=-.) A finite portion of the symbolic trace tree for a goal in I , generated by using the program Csub and the control strategy S pc , is depicted in Figure 2 (where for the time being, the upgoing arro... |

69 |
Tabulation Techniques for Recursive Programs
- Bird
- 1980
(Show Context)
Citation Context ...omputations, one for each value of k. Various models of symbolic computations have been proposed in the literature within various program transformation systems. We will consider here the m-dag model =-=[3]-=- which given a recursive program, uses a directed acyclic graph to represent the father-son relationship among the function calls evoked by the given program. Thus, in our case, starting from the root... |

67 | The derivation of an algorithm for program specialisation - Gallagher, Bruynooghe - 1990 |

64 |
A general criterion for avoiding infinite unfolding during partial deduction, New Generation Computing
- Bruynooghe, Schreye, et al.
- 1992
(Show Context)
Citation Context ... or when the expression in the node at hand can be `embedded' in the expression in one of its ancestors [47]. A general technique for ensuring the termination of the unfolding process is described in =-=[8]-=-. During the construction of a symbolic computation model, in order to derive programs with high performances it is often important, in practice, to perform lemma application steps, that is, to substi... |

61 | Safe fusion of functional expressions - CHIN - 1992 |

50 |
Essence of generalized partial computation
- Futamura, Nogi, et al.
- 1991
(Show Context)
Citation Context ...using a meta-interpreter. More complex operations may be performed during symbolic computation. For instance, in supercompilation one is allowed to use any `clever trick' [52, page 293], in GPC-trees =-=[19]-=- one may use theorem provers to partially evaluate conditionals, and when constructing unfolding trees of logic programs one may perform, together with unfolding and folding steps, also goal replaceme... |

45 | A survey and classification of some program transformation approaches and techniques
- Feather
- 1987
(Show Context)
Citation Context ...osition of already available functions. In this sense deforestation can be viewed as an instance of the composition strategy (also called fusion) introduced in the field of unfold/fold transformation =-=[10, 18]-=- and it is also closely related to Scherlis' internal specialization [46] and supercompilation [48]. Deforestation works via generating, by an unfolding process, from an initial term containing nested... |

44 |
Polyvariant mixed computation for analyzer programs
- Bulyonkov
- 1984
(Show Context)
Citation Context ... the partial evaluation field, researchers have studied a method for improving program efficiency which we may classify under the global control issues. This method, called polyvariant specialization =-=[9]-=-, specializes programs, instead of generalizing them. Indeed, it allows for the generation of various different versions of the same program with the objective of achieving higher performances. The im... |

36 |
Compiling control
- Bruynooghe, Schreye, et al.
- 1989
(Show Context)
Citation Context ...Now we consider in some detail a particular symbolic computation model, called symbolic trace tree, which has its relevance in the transformation technique for logic programs called compiling control =-=[7]-=-. The Symbolic Trace Tree for Compiling Control A logic program can be viewed as the union of some `logic definitions' (that is, the axioms of a theory) and a `control strategy' (that is, a theorem pr... |

36 |
Mixed computation: Potential applications and problems for study
- Ershov
- 1982
(Show Context)
Citation Context ...mmon knowledge' of the people working in the field. Let us simply mention among some other similar results, the following ones: i) the unfold/fold view of the mixed computation technique described in =-=[16]-=-, ii) the equivalence of driving in supercompilation and partial deduction shown in [25] for a particular class of programs, and iii) the straightforward way of using the unfold/fold transformation te... |

33 | Partial Evaluation and Mixed Computation - Bjørner, Ershov, et al. - 1987 |

22 |
Specialization of logic programs, in: D
- Gallagher
- 1993
(Show Context)
Citation Context ...ial evaluation is a well-known program transformation technique which allows us to derive a new program from an old one when part of the input data is known before evaluation. The reader may refer to =-=[12, 21, 26]-=- for introductions and surveys on this topic. In the case of logic programming, where partial evaluation is also called partial deduction, it is usually assumed that we are given an initial program P ... |

21 |
Some Techniques for Recursion Removal From Recursive Functions
- Arsac, Kodratoff
- 1982
(Show Context)
Citation Context ...; u ! 1; u ! 0 u u; u ! 1 sg where s is the start symbol. In other words, we want to partially evaluate Parse w.r.t. the input goal parse(\Gamma; [s]; Xn[ ]) where \Gamma is the term [s ! [0; u]; u ! =-=[1]-=-; u ! [0; u; u]; u ! [1; s]] representing the given grammar. To this aim, we consider the following independent set A of two atoms: A = fparse(\Gamma; [s]; XnY ); parse(\Gamma; [u]; XnY )g which will ... |

13 |
Abstract interpretation for (constraint) logic programming
- BRUYNOOGHE, BOULANGER
- 1994
(Show Context)
Citation Context ...d the set of all (ground and nonground) terms, form the domain of an abstract interpretation which is a lattice. (The reader unfamiliar with abstract interpretations in logic programming may refer to =-=[2, 6, 32]-=-.) A finite portion of the symbolic trace tree for a goal in I , generated by using the program Csub and the control strategy S pc , is depicted in Figure 2 (where for the time being, the upgoing arro... |

13 |
On the partial computation principle
- Ershov
- 1977
(Show Context)
Citation Context ...may easily identify those three steps of the methododlogy. However, for some other techniques, like partial evaluation of functional and imperative programs, program specialization, mixed-computation =-=[15]-=-, or deforestation [55], it is not always easy to do the same. Nevertheless, we think that the concepts of symbolic computation, search for regularities, and extraction of final programs, are to some ... |

12 |
An Experimental Program Transformation System
- Darlington
- 1981
(Show Context)
Citation Context ...ow, by using the abstract interpretation technique. Ideas related to compiling control have also been investigated in the area of functional programming within the so called filter promotion strategy =-=[4, 14]-=-, whereby function evaluations can be anticipated for avoiding unnecessary computations and improving program behaviour. In the following example we will see in action the compiling control technique.... |

7 |
On the mechanics of metasystem hierarchies in program transformation
- Gluck
- 1996
(Show Context)
Citation Context ...ercompilation and other techniques used for transforming logic programs are based on the idea of performing symbolic computations by meta-programs or, in Turchin's terminology, metasystem transitionss=-=[24, 54]-=-. For instance, the transformation technique presented by Gallagher in [20] works by specializing a meta-interpreter, that is, a logic program which works as an interpreter for logic programs, w.r.t. ... |

3 |
Transforming Programs by Specializing Interpreters
- Gallagher
- 1986
(Show Context)
Citation Context ...ed on the idea of performing symbolic computations by meta-programs or, in Turchin's terminology, metasystem transitionss[24, 54]. For instance, the transformation technique presented by Gallagher in =-=[20]-=- works by specializing a meta-interpreter, that is, a logic program which works as an interpreter for logic programs, w.r.t. a particular input program. Also the symbolic trace tree for compiling cont... |