## Program Specialization via Algorithmic Unfold/Fold Transformations (1998)

Venue: | ACM Computing Surveys: Special Issue on Partial Evaluation |

Citations: | 4 - 0 self |

### BibTeX

@ARTICLE{Pettorossi98programspecialization,

author = {Alberto Pettorossi and Maurizio Proietti},

title = {Program Specialization via Algorithmic Unfold/Fold Transformations},

journal = {ACM Computing Surveys: Special Issue on Partial Evaluation},

year = {1998},

volume = {30}

}

### OpenURL

### Abstract

this paper we will essentially refer to these techniques as they have been developed in the fields of functional and logic programming.

### Citations

662 |
Partial Evaluation and Automatic Program Generation
- Jones, Gomard, et al.
- 1993
(Show Context)
Citation Context ...features of the program specialization system that may be designed according to our proposal. Two well established techniques in the field of automatic program derivation are partial evaluation (see [=-=Jones et al. 1993-=-] for a comprehensive survey and also [Danvy et al. 1996; Gallagher 1993; Komorowski 1982; Lloyd and Shepherdson 1991]) and unfold/fold program transformation [Burstall and Darlington 1977; Pettorossi... |

595 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ...rtial evaluation (see [Jones et al. 1993] for a comprehensive survey and also [Danvy et al. 1996; Gallagher 1993; Komorowski 1982; Lloyd and Shepherdson 1991]) and unfold/fold program transformation [=-=Burstall and Darlington 1977-=-; Pettorossi and Proietti 1994; Tamaki and Sato 1984]. For simplicity, in this paper we will essentially refer to these techniques as they have been developed in the fields of functional and logic pro... |

419 | Deforestation: Transforming programs to eliminate trees
- Wadler
- 1990
(Show Context)
Citation Context ...her, (iii) generalized partial computation [Futamura and Nogi 1988] that incorporates some theorem proving capabilities, and its fully automatic version proposed in [Takano 1991], (iv) deforestation [=-=Wadler 1988-=-], which is an algorithm for eliminating intermediate data structures, (v) tupling [Pettorossi 1977; Chin 1993], which avoids the repeated computation of common subexpressions and multiple traversals ... |

243 |
Partial evaluation in logic programming
- Lloyd, Shepherdson
- 1987
(Show Context)
Citation Context ...lished techniques in the field of automatic program derivation are partial evaluation (see [Jones et al. 1993] for a comprehensive survey and also [Danvy et al. 1996; Gallagher 1993; Komorowski 1982; =-=Lloyd and Shepherdson 1991-=-]) and unfold/fold program transformation [Burstall and Darlington 1977; Pettorossi and Proietti 1994; Tamaki and Sato 1984]. For simplicity, in this paper we will essentially refer to these technique... |

222 |
Unfold/fold transformation of logic programs
- Tamaki, Sato
- 1984
(Show Context)
Citation Context ...e survey and also [Danvy et al. 1996; Gallagher 1993; Komorowski 1982; Lloyd and Shepherdson 1991]) and unfold/fold program transformation [Burstall and Darlington 1977; Pettorossi and Proietti 1994; =-=Tamaki and Sato 1984-=-]. For simplicity, in this paper we will essentially refer to these techniques as they have been developed in the fields of functional and logic programming. Partial Evaluation and Unfold/Fold Program... |

176 | The concept of a supercompiler
- Turchin
- 1986
(Show Context)
Citation Context ...ly automatic unfold/fold program transformations. Among these techniques we recall: (i) positive supercompilation [S��rensen et al. 1996] which is a restricted, automatic version of supercompilati=-=on [Turchin 1986-=-], (ii) conjunctive partial deduction [Leuschel et al. 1996], which performs partial evaluation of logic programs using conjunctions of several atoms together, (iii) generalized partial computation [F... |

140 | Transformation of logic programs: Foundations and techniques
- Pettorossi, Proietti
- 1994
(Show Context)
Citation Context ...t al. 1993] for a comprehensive survey and also [Danvy et al. 1996; Gallagher 1993; Komorowski 1982; Lloyd and Shepherdson 1991]) and unfold/fold program transformation [Burstall and Darlington 1977; =-=Pettorossi and Proietti 1994-=-; Tamaki and Sato 1984]. For simplicity, in this paper we will essentially refer to these techniques as they have been developed in the fields of functional and logic programming. Partial Evaluation a... |

114 | Finite differencing of computable expressions - Paige, Koenig - 1982 |

99 | Average-case analysis of algorithms and data structures
- Flajolet, Vitter
- 1990
(Show Context)
Citation Context ...ntax and semantics of the language in use, and also w.r.t. the calculus for establishing the computational complexity of the programs written in that language (for such a calculus see, for instance, [=-=Vitter and Flajolet 1990-=-]). (iii) Analysis tools. The system should allow for the use of static analysis techniques, possibly based on abstract interpretation, such as those for binding-time analysis, mode analysis, and type... |

77 | Specification and Transformation of Programs - Partsch - 1990 |

74 |
Towards an Automated Tupling Strategy
- Chin
- 1993
(Show Context)
Citation Context ...ilities, and its fully automatic version proposed in [Takano 1991], (iv) deforestation [Wadler 1988], which is an algorithm for eliminating intermediate data structures, (v) tupling [Pettorossi 1977; =-=Chin 1993-=-], which avoids the repeated computation of common subexpressions and multiple traversals of data structures, (vi) UDF* [Proietti and Pettorossi 1995], which eliminates unnecessary data structures fro... |

57 | Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation i the case of Prolog - Komorowski - 1982 |

50 |
Essence of generalized partial computation
- Futamura, Nogi, et al.
- 1991
(Show Context)
Citation Context ...6], (ii) conjunctive partial deduction [Leuschel et al. 1996], which performs partial evaluation of logic programs using conjunctions of several atoms together, (iii) generalized partial computation [=-=Futamura and Nogi 1988-=-] that incorporates some theorem proving capabilities, and its fully automatic version proposed in [Takano 1991], (iv) deforestation [Wadler 1988], which is an algorithm for eliminating intermediate d... |

45 |
Parameterized partial evaluation
- Consel, Khoo
- 1991
(Show Context)
Citation Context ...or binding-time analysis, mode analysis, and type analysis. The information collected by these techniques is used to direct the application of sophisticated specialization strategies as indicated in [=-=Consel and Khoo 1993-=-; Gallagher 1993; Jones et al. 1993; Pettorossi et al. 1997]. In order to enhance the strategies for program specialization some algorithmic forms of theorem proving may also be added to the system, s... |

38 |
Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs
- Proietti, Pettorossi
- 1995
(Show Context)
Citation Context ...iminating intermediate data structures, (v) tupling [Pettorossi 1977; Chin 1993], which avoids the repeated computation of common subexpressions and multiple traversals of data structures, (vi) UDF* [=-=Proietti and Pettorossi 1995-=-], which eliminates unnecessary data structures from logic programs, (vii) the strategy proposed in [Pettorossi et al. 1997], which avoids redundant nondeterminism while specializing logic programs, a... |

34 |
Mixed Computation: Potential Applications and Problems for Study, Theoret
- Ershov
- 1982
(Show Context)
Citation Context ...uld be supported by suitable automatic tools. Some similarities between partial evaluation and unfold/fold program transformation have been recognized and formalized during the last two decades (see [=-=Ershov 1982-=-, page 59], [Jones et al. 1993, page 347], [Pettorossi and Proietti 1994, page 308]). In particular, in the case of functional and logic programming, the basic program manipulations performed by parti... |

31 |
A method for specializing logic programs
- Bossi, Cocco, et al.
- 1990
(Show Context)
Citation Context ...ttorossi et al. 1997]. In order to enhance the strategies for program specialization some algorithmic forms of theorem proving may also be added to the system, suitably restricting the approaches of [=-=Bossi et al. 1990-=-; Futamura and Nogi 1988]. (iv) Auxiliary transformation techniques. The system should allow for the application of various transformation techniques which when used together with program specializati... |

25 | A conceptual embedding of folding into partial deduction: Towards a maximal integration - Leuschel, Schreye, et al. - 1996 |

25 | Reducing nondeterminism while specializing logic programs
- Pettorossi, Proietti, et al.
- 1997
(Show Context)
Citation Context ... subexpressions and multiple traversals of data structures, (vi) UDF* [Proietti and Pettorossi 1995], which eliminates unnecessary data structures from logic programs, (vii) the strategy proposed in [=-=Pettorossi et al. 1997-=-], which avoids redundant nondeterminism while specializing logic programs, and (viii) the techniques of [Pettorossi and Proietti 1996] for specializing programs when their context of use is given by ... |

23 | A positive supercompiler - Srensen, Gluck, et al. - 1996 |

15 |
Generalized partial computation for a lazy functional language
- Takano
- 1991
(Show Context)
Citation Context ...onjunctions of several atoms together, (iii) generalized partial computation [Futamura and Nogi 1988] that incorporates some theorem proving capabilities, and its fully automatic version proposed in [=-=Takano 1991-=-], (iv) deforestation [Wadler 1988], which is an algorithm for eliminating intermediate data structures, (v) tupling [Pettorossi 1977; Chin 1993], which avoids the repeated computation of common subex... |

14 |
The use of metasystem transition in theorem proving and program optimization
- Turchin
- 1980
(Show Context)
Citation Context ...ed for higher-order manipulations has already emerged both in partial evaluation, where the concepts of generating extension and metasystem transition play an important role [Ershov 1982; Gluck 1996; =-=Turchin 1980-=-], and in unfold/fold program transformation where, for instance, suitable generalization strategies may be applied after analyzing the outcome of other strategies [Pettorossi and Proietti 1994]. A th... |

12 |
Transformation of Programs and Use of Tupling Strategy
- Pettorossi
- 1977
(Show Context)
Citation Context ...rem proving capabilities, and its fully automatic version proposed in [Takano 1991], (iv) deforestation [Wadler 1988], which is an algorithm for eliminating intermediate data structures, (v) tupling [=-=Pettorossi 1977-=-; Chin 1993], which avoids the repeated computation of common subexpressions and multiple traversals of data structures, (vi) UDF* [Proietti and Pettorossi 1995], which eliminates unnecessary data str... |

11 | Program adaptation based on program transformation
- Consel
- 1997
(Show Context)
Citation Context ...ization we mean the goal of adapting a program to a given context of use and we do not actually refer to the operations to be performed to achieve that goal (this terminology follows [Gallagher 1993; =-=Consel 1997-=-] and slightly departs from [Jones et al. 1993, page 1], where partial evaluation is identified with program specialization). Thus, partial evaluation realizes program specialization where the context... |

1 |
Program Specialization via Algorithmic Unfold/Fold Transformations \Delta 5
- Gallagher
- 1993
(Show Context)
Citation Context ...g to our proposal. Two well established techniques in the field of automatic program derivation are partial evaluation (see [Jones et al. 1993] for a comprehensive survey and also [Danvy et al. 1996; =-=Gallagher 1993-=-; Komorowski 1982; Lloyd and Shepherdson 1991]) and unfold/fold program transformation [Burstall and Darlington 1977; Pettorossi and Proietti 1994; Tamaki and Sato 1984]. For simplicity, in this paper... |

1 | On the mechanics of metasystem hierarchies in program transformation - uck, R - 1996 |

1 |
A theory of logic program specializationand generalization for dealing with input data properties
- Pettorossi, Proietti
- 1996
(Show Context)
Citation Context ...ry data structures from logic programs, (vii) the strategy proposed in [Pettorossi et al. 1997], which avoids redundant nondeterminism while specializing logic programs, and (viii) the techniques of [=-=Pettorossi and Proietti 1996-=-] for specializing programs when their context of use is given by properties, rather than values, of the input data. We believe that an important topic for research in the forthcoming years is the dev... |