An Algorithm of Generalization in Positive Supercompilation

This paper presents a termination technique for positive supercompilation, based on notions from term algebra. The technique is not particularily biased towards positive supercompilation, but also works for deforestation and partial evaluation. It appears to be well suited for partial deduction too. The technique guarantees termination, yet it is not overly conservative. Our technique can be viewed as an instance of Martens' and Gallagher's recent framework for global termination of partial deduction, but it is more general in some important respects, e.g. it uses well-quasi orderings rather than well-founded orderings. Its merits are illustrated on several examples.

[1]  Robert Glück,et al.  Partial Deduction and Driving are Equivalent , 1994, PLILP.

[2]  Leon Sterling Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance , 1995 .

[3]  Donald A. Smith,et al.  Partial evaluation of pattern matching in constraint logic programming languages , 1991, PEPM '91.

[4]  Valentin F. Turchin,et al.  The Use of Metasystem Transition in Theorem Proving and Program Optimization , 1980, ICALP.

[5]  Roland N. Bol,et al.  Loop checking in partial deduction , 1993, J. Log. Program..

[6]  Jan Komorowski,et al.  An Introduction to Partial Deduction , 1992, META.

[7]  Valentin F. Turchin,et al.  The concept of a supercompiler , 1986, TOPL.

[8]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1988, Theoretical Computer Science.

[9]  Jeffrey D. Ullman,et al.  Efficient tests for top-down termination of logical rules , 1988, JACM.

[10]  Lutz Plümer Termination Proofs for Logic Programs , 1990, Lecture Notes in Computer Science.

[11]  Robert Glück,et al.  Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and GPC , 1994, ESOP.

[12]  John W. Lloyd,et al.  Partial Evaluation in Logic Programming , 1991, J. Log. Program..

[13]  Dines Bjørner,et al.  Partial Evaluation and Mixed Computation , 1987 .

[14]  Robert Glück,et al.  Application of metasystem transition to function inversion and transformation , 1990, ISSAC '90.

[15]  Danny De Schreye,et al.  Sound and Complete Partial Deduction with Unfolding Based on Well-Founded Measures , 1992, Theor. Comput. Sci..

[16]  Morten Heine B. Sorensen,et al.  Turchin's Supercompiler Revisited - An operational theory of positive information propagation , 1996 .

[17]  Valentin F. Turchin,et al.  Experiments with a supercompiler , 1982, LFP '82.

[18]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[19]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[20]  Morten Heine Sørensen,et al.  Call-By-Name CPS-Translation as a Binding-Time Improvement , 1995, SAS.

[21]  Robert Glück,et al.  Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree , 1993, WSA.

[22]  John P. Gallagher,et al.  Tutorial on specialisation of logic programs , 1993, PEPM '93.