Results 1  10
of
20
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 198 (3 self)
 Add to MetaCart
(Show Context)
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.
Occam’s Razor in Metacomputation: the Notion of a Perfect Process Tree
 In Proc. of the 3rd Int’l Workshop on Static Analysis (WSA’93). Springer LNCS 724
, 1993
"... Abstract. We introduce the notion of a perfect process tree as a model for the full propagation of information in metacomputation. Starting with constant propagation we construct stepbystep the driving mechanism used in supercompila tion which ensures the perfect propagation of information. The c ..."
Abstract

Cited by 66 (14 self)
 Add to MetaCart
(Show Context)
Abstract. We introduce the notion of a perfect process tree as a model for the full propagation of information in metacomputation. Starting with constant propagation we construct stepbystep the driving mechanism used in supercompila tion 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 algorithm. 1
The essence of program transformation by partial evaluation and driving
 Logic, Language and Computation. LNCS 792
, 1994
"... Abstract. An abstract framework is developed to describe program transformation by specializing a given program to a restricted set of inputs. Particular cases include partial evaluation [19] and Turchin’s more powerful “driving ” transformation [33]. Such automatic program speedups have been see ..."
Abstract

Cited by 37 (1 self)
 Add to MetaCart
(Show Context)
Abstract. An abstract framework is developed to describe program transformation by specializing a given program to a restricted set of inputs. Particular cases include partial evaluation [19] and Turchin’s more powerful “driving ” transformation [33]. Such automatic program speedups have been seen to give quite signifcant speedups in practical applications. This paper’s aims are similar to those of [18]: better to understand the fundamental mathematical phenomena that make such speedups possible. The current paper is more complete than [18], since it precisely formulates correctness of code generation; and more powerful, since it includes program optimizations not achievable by simple partial evaluation. Moreover, for the first time it puts Turchin’s driving methodology on a solid semantic foundation which is not tied to any particular programming language or data structure. This paper is dedicated to Satoru Takasu with thanks for good advice early in my career on how to do research, and for insight into how to see the essential part of a new problem.
A Roadmap to Metacomputation by Supercompilation
, 1996
"... This paper gives a gentle introduction to Turchin's supercompilation and its applications in metacomputation with an emphasis on recent developments. First, a complete supercompiler, including positive driving and generalization, is defined for a functional language and illustrated with example ..."
Abstract

Cited by 35 (4 self)
 Add to MetaCart
This paper gives a gentle introduction to Turchin's supercompilation and its applications in metacomputation with an emphasis on recent developments. First, a complete supercompiler, including positive driving and generalization, is defined for a functional language and illustrated with examples. Then a taxonomy of related transformers is given and compared to the supercompiler. Finally, we put supercompilation into the larger perspective of metacomputation and consider three metacomputation tasks: specialization, composition, and inversion.
Experiments with a supercompiler
 In ACM Symposium on Lisp and Functional Programming
, 1982
"... This work has been supported by ..."
A program specialization relation based on supercompilation and its properties
 FIRST INTERNATIONAL WORKSHOP ON METACOMPUTATION IN RUSSIA (META 2008)
, 2008
"... An inputoutput relation for a wide class of program specializers for a simple functional language in the form of Natural Semantics inference rules is presented. It covers polygenetic specialization, which includes deforestation and supercompilation, and generalizes the author’s previous paper on sp ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
An inputoutput relation for a wide class of program specializers for a simple functional language in the form of Natural Semantics inference rules is presented. It covers polygenetic specialization, which includes deforestation and supercompilation, and generalizes the author’s previous paper on specification of monogenetic specialization like partial evaluation and restricted supercompilation. The specialization relation expresses the idea of what is to be a specialized program, avoiding as much as possible the details of how a specializer builds it. The relation specification follows the principles of Turchin’s supercompilation and captures its main notions: configuration, driving, generalization of a configuration, splitting a configuration, as well as collapsedjungle driving. It is virtually a formal definition of supercompilation abstracting away the most sophisticated parts of supercompilers— strategies of configuration analysis. Main properties of the program specialization relation—idempotency, transitivity, soundness, completeness, correctness—are formulated and discussed.
Multiresult Supercompilation as Branching Growth of the Penultimate Level in Metasystem Transitions
 PERSPECTIVES OF SYSTEMS INFORMATICS: 8TH INTERNATIONAL ANDREI ERSHOV MEMORIAL CONFERENCE, PSI 2011
, 2011
"... The paper deals with some aspects of metasystem transitions in the context of supercompilation. We consider the manifestations of the law of branching growth of the penultimate level in the case of higherlevel supercompilation and argue that this law provides some useful hints regarding the ways of ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
The paper deals with some aspects of metasystem transitions in the context of supercompilation. We consider the manifestations of the law of branching growth of the penultimate level in the case of higherlevel supercompilation and argue that this law provides some useful hints regarding the ways of constructing metasystems by combining supercompilers. In particular we show the usefulness of multiresult supercompilation for proving the equivalence of expressions and in twolevel supercompilation.
Towards effective twolevel supercompilation
, 2010
"... The paper presents a number of improvements to the method of twolevel supercompilation: a fast technique of lemma discovering by analyzing the expressions in the partial process tree, an enhancement to the algorithm of checking improvement lemmas based on the normalization of tick annotations, and ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
The paper presents a number of improvements to the method of twolevel supercompilation: a fast technique of lemma discovering by analyzing the expressions in the partial process tree, an enhancement to the algorithm of checking improvement lemmas based on the normalization of tick annotations, and a few techniques of finding simplified versions of lemmas discovered in the process of twolevel supercompilation.
SPSC: a Simple Supercompiler in Scala
 PU'09 (INTERNATIONAL WORKSHOP ON PROGRAM UNDERSTANDING) JUNE, 1923
, 2009
"... The goal of the paper is to demystify supercompilation by presenting the complete source code of a simple, yet operational supercompiler. This may be helpful for a working programmer giving him an opportunity to familiarize himself with supercompilation formulated in terms of his "native langua ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
(Show Context)
The goal of the paper is to demystify supercompilation by presenting the complete source code of a simple, yet operational supercompiler. This may be helpful for a working programmer giving him an opportunity to familiarize himself with supercompilation formulated in terms of his "native language", i.e. in form of concrete programs. Besides, these programs are complete and ready to run, so that the supercompilation techniques described in the paper can be immediately tried in practice.
On the Place of Supercompilation inside Program Specialization
 FIRST INTERNATIONAL WORKSHOP ON METACOMPUTATION IN RUSSIA (META 2008)
, 2008
"... 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 Japane ..."
Abstract
 Add to MetaCart
(Show Context)
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 1970ths. 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 (REFAL5). 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.