An Algorithm of Generalization in Positive Supercompilation

  title={An Algorithm of Generalization in Positive Supercompilation},
  author={Morten Heine S{\o}rensen and Robert Gl{\"u}ck},
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… 

A positive supercompiler

A positive supercompilers is introduced, a version of Turchin's supercompiler maintaining only positive information during transformation, and using folding without generalization to obtain an efficient matcher very similar to the Knuth–Morris–Pratt algorithm.

Positive supercompilation for a higher order call-by-value language

This work presents a supercompilation algorithm for a higher-order call-by-value language and it is proved that the algorithm both terminates and preserves termination properties.

A Positive Supercompiler Capsule Review

A positive supercompilation, a version of Turchin's supercompiler maintaining only positive information during transformation, and using folding without generalization is introduced, and the authors compare it with similar techniques: partial evaluation, deforestation and generalized partial computation.

A Roadmap to Metacomputation by Supercompilation

A complete supercompilation, including positive driving and generalization, is defined for a functional language and illustrated with examples and a taxonomy of related transformers is given and compared to the supercompiler.

Improving supercompilation: tag-bags, rollback, speculation, normalisation, and generalisation

This paper reduces supercompiling program size by the use of a weak normaliser and aggressive rollback, and improves the performance of supercompiled programs by heap speculation and generalisation.

A Simple Supercompiler Formally Verified in Coq

Though the presented supercompiler is currently limited, its formal correctness proof can give guidance for verifying more realistic implementations and give separate correctness proofs for two key parts of driving – normalization and positive information propagation – in the context of a non-Turing-complete expression sub-language.

Nonlinear Configurations for Superlinear Speedup by Supercompilation

A conservative extension to supercompilation using equality indices that extends the range of msg-based superlinear speedups and improves the time complexity of the palindrome-suffix problem from O(2 2 ) to O(n).

Controlling Conjunctive PartialDeduction of De nite Logic

This paper presents a generic algorithm for partial deduction within the framework by Lloyd and Shepherdson, and reene the generic algorithm into a fully automatic concrete one that registers partially deduced conjunctions in a global tree, and proves its termination and correctness.

Towards Higher-Level Supercompilation ?

We show that the power of supercompilation can be increased by constructing a hierarchy of supercompilers, in which a lowerlevel supercompiler is used by a higher-level one for proving improvement

An Approach to Supercompilation for Object-oriented Languages : the Java Supercompiler Case Study

An extension of Turchin’s supercompilation from functional to object-oriented languages as it is implemented in the current version of a Java supercompiler (JScp) is reviewed. There are two



Turchin's Supercompiler Revisited - An operational theory of positive information propagation

This thesis gives a new formulation of the supercompiler in familiar terms, study the essence of it, how it achieves its goals, and its relations to related transformers; and develops results dealing with the problems of preserving semantics, assessing theiency of transformed programs, and ensuring termination.

The concept of a supercompiler

It is argued that the language Refal serves the needs of supercompilation best, and it is described and compared with the usual approach to program transformation as a stepwise application of a number of equivalence rules.

Experiments with a supercompiler

This paper presents and discusses some examples of the operation of the first experimental model of a supercompiler, and highlights most important features of the supercompilers and intimate its potential uses.

Application of metasystem transition to function inversion and transformation

It is proved by construction an application considered theoretically by Turchin that self-application of metacomputation will allow the automatic construction of inverse algorithms, in particular the algorithm of binary subtraction from the algorithm that leads to the Knuth, Morris and Pratt algorithm.

Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree

The notion of a perfect process tree as a model for the full propagation of information in metacomputation is introduced and it is demonstrated that specializing a naive pattern matcher with respect to a fixed pattern obtains the efficiency of a matcher generated by the Knuth, Morris & Pratt algorithm.

An Introduction to Partial Deduction

From an informal and intuitive presentation, the fundamental notions such as correctness and completeness are discussed and a selection of applications is presented to illustrate partial deduction in different contexts.

Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance

A quite general framework is formulated where this set of distinct “partially deduced” atoms generated during partial deduction is represented as a tree structure and a well-founded order among such structures is defined, thus obtaining a foundation for certified global termination of partial deduction.

Partial Evaluation and Mixed Computation

An algorithm of generali?.ation in the process of outside-in driving (forced unfolding of function calls ;n the l~zy evaluation semantics) which always tP.rminatP.s and produce~ а finite graph of states and transitions with а self-sufficient set of basic configurations.

Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and GPC

We study four transformation methodologies which are automatic instances of Burstall and Darlington's fold/unfold framework: partial evaluation, deforestation, supercompilation, and generalized

Loop checking in partial deduction

  • R. Bol
  • Mathematics
    J. Log. Program.
  • 1993