Results 1 -
9 of
9
The Concept of a Supercompiler
- ACM Transactions on Programming Languages and Systems
, 1986
"... A supercompiler is a program transformer of a certain type. It traces the possible generalized histories of computation by the original program, and compiles an equivalent program, reducing in the process the redundancy that could be present in the original program. The nature of the redundancy that ..."
Abstract
-
Cited by 155 (3 self)
- Add to MetaCart
A supercompiler is a program transformer of a certain type. It traces the possible generalized histories of computation by the original program, and compiles an equivalent program, reducing in the process the redundancy that could be present in the original program. The nature of the redundancy that can be eliminated by supercompilation may be various, e.g., some variables might have predefined values (as in partial evaluation), or the structure of control transfer could be made more efficient (as in lazy evaluation), or it could simply be the fact that the same variable is used more than once. The general principles of supercompilation are described and compared with the usual approach to program transformation as a stepwise application of a number of equivalence rules. It is argued that the language Refal serves the needs of supercompilation best. Refal is formally defined and compared with Prolog and other languages. Examples are given of the operation of a Refal supercompiler implemented at CCNY on an IBM/370.
An Algorithm of Generalization in Positive Supercompilation
- Proceedings of ILPS'95, the International Logic Programming Symposium
, 1995
"... 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. ..."
Abstract
-
Cited by 66 (2 self)
- Add to MetaCart
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.
Occam's Razor in Metacomputation: the Notion of a Perfect Process Tree
, 1993
"... We introduce the notion of a perfect process tree as a model for the
full propagation of in forma tion in metacomputation. Starting with constant
propagation we construct step-by-step the driving mechanism used in supercompilation
which ensures the perfect propagation of information. The concept
of ..."
Abstract
-
Cited by 63 (14 self)
- Add to MetaCart
We introduce the notion of a perfect process tree as a model for the
full propagation of in forma tion in metacomputation. Starting with constant
propagation we construct step-by-step the driving mechanism used in supercompilation
which ensures the perfect propagation of information. The concept
of a simple supercompiler based on perfect driving coupled with a simple
folding strategy is explained. As an example we demonstrate that specializing a
naive pattern matcher with respect to a fixed pattern obtains the efficiency of a
matcher generated by the Knuth, Morris & Pratt al gorithm.
A Self-Applicable Supercompiler
- In Partial Evaluation. Proceedings
, 1996
"... A supercompiler is a program which can perform a deep transformation of programs using a principle which is similar to partial evaluation, and can be referred to as metacomputation. Supercompilers that have been in existence up to now (see [12], [13]) were not self-applicable: this is a more di cult ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
A supercompiler is a program which can perform a deep transformation of programs using a principle which is similar to partial evaluation, and can be referred to as metacomputation. Supercompilers that have been in existence up to now (see [12], [13]) were not self-applicable: this is a more di cult problem than self-application of a partial evaluator, because of the more intricate logic of supercompilation. In the present paper we describe the rst self-applicable model of a supercompiler and present some tests. Three features distinguish it from the previous models and make self-application possible: (1) The input language is a subset of Refal which we refer to as at Refal. (2) The process of driving is performed as a transformation of pattern-matching graphs. (3) Metasystem jumps are implemented, which allows the supercompiler to avoid interpretation whenever direct computation is possible.
Turchin's Supercompiler Revisited - An operational theory of positive information propagation
, 1996
"... Turchin`s supercompiler is a program transformer that includes both partial evaluation and deforestation. Although known in the West since 1979, the essence of its techniques, its more precise relations to other transformers, and the properties of the programs that it produces are only now becoming ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
Turchin`s supercompiler is a program transformer that includes both partial evaluation and deforestation. Although known in the West since 1979, the essence of its techniques, its more precise relations to other transformers, and the properties of the programs that it produces are only now becoming apparent in the Western functional programming community. This thesis gives a new formulation of the supercompiler in familiar terms; we study the essence of it, how it achieves its effects, and its relations to related transformers; and we develop results dealing with the problems of preserving semantics, assessing the efficiency of transformed programs, and ensuring termination.
Metacomputation as a Tool for Formal Linguistic Modeling
- Cybernetics and Systems '94
, 1994
"... We consider the principle "a new model is a model of an existing one" as the main scheme for deriving new linguistic models by metacomputation. We derive the basic requirements for metacomputation by a structural analysis of different model definitions, and show that in order to automate the creatio ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
We consider the principle "a new model is a model of an existing one" as the main scheme for deriving new linguistic models by metacomputation. We derive the basic requirements for metacomputation by a structural analysis of different model definitions, and show that in order to automate the creation of linguistic models the following operations on linguistic models have to be performed by metacomputation effectively and efficiently: composition, inversion, and specialization of algorithms. This may also serve as a unifying paradigm for different program transformation approaches. 1. INTRODUCTION During the last decades we have witnessed tremendous technological breakthroughs in the development and application of computers. The introduction of the computer was an evolutionary step in the control of formal linguistic models, a metasystem transition (MST). As a result the number of linguistic models created and used has significantly increased. The method of modern science is, in its e...
Supercompiler HOSC: proof of correctness
, 2010
"... The paper presents the proof of correctness of an experimental supercompiler HOSC dealing with higher-order functions. ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
The paper presents the proof of correctness of an experimental supercompiler HOSC dealing with higher-order functions.
On the Place of Supercompilation inside Program Specialization
"... Abstract. Research in the field of creating systematical methods for specialization of programs with respect to fixed properties of their arguments, compositional structure and given invariants were started by Russian scientists A. P. Ershov (“mixed computation”), V. F. Turchin (“supercompilation”) ..."
Abstract
- Add to MetaCart
Abstract. Research in the field of creating systematical methods for specialization of programs with respect to fixed properties of their arguments, compositional structure and given invariants were started by Russian scientists A. P. Ershov (“mixed computation”), V. F. Turchin (“supercompilation”) and Japanese scientist Y. Futamura (“generalized partial computation”) in the 1970-ths. To the current moment a huge amount of facts mainly related to the object domain of functional programming languages was accumulated in the literature. Ideas of supercompilation were mainly being studied on the base of a functional programming language REFAL, although a series of the results were polished on the LISP’s experimental base. At present time, along with a number of primitive supercompilers constructed for simplest purely theoretical languages, there exists the only experimental supercompiler SCP4 for a real programming language (REFAL-5). The name SCP4 was suggested by V. F. Turchin as reflecting the history of the supercompilation ideas. In this paper we consider various approaches to formulation of the specialization task per se. We give a short survey of the main achievements derived (to the given moment) in the field of specialization of functional programs, analyze principal distinctions between supercompilation and other existing methods. We survey the attempts of constructing of supercompilers.
On Generalization of Lists and Strings in
"... equivalent transformation of programs based on driving [23, 24, 121, which can be seen as forceful unfolding of function calls, even in cases where it is impossible to choose between several alternatives. Supercompilation is a ..."
Abstract
- Add to MetaCart
equivalent transformation of programs based on driving [23, 24, 121, which can be seen as forceful unfolding of function calls, even in cases where it is impossible to choose between several alternatives. Supercompilation is a

