Results 1  10
of
19
Supercompiler HOSC 1.0: under the hood
, 2009
"... The paper describes the internal structure of HOSC, an experimental supercompiler dealing with programs written in a higherorder functional language. A detailed and formal account is given of the concepts and algorithms the supercompiler is based upon. ..."
Abstract

Cited by 12 (8 self)
 Add to MetaCart
The paper describes the internal structure of HOSC, an experimental supercompiler dealing with programs written in a higherorder functional language. A detailed and formal account is given of the concepts and algorithms the supercompiler is based upon.
Supercompilation by evaluation
, 2010
"... Supercompilation is a technique due to Turchin [1] which allows for the construction of program optimisers that are both simple and extremely powerful. Supercompilation is capable of achieving transformations such as deforestation [2], function specialisation and constructor specialisation [3]. Insp ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Supercompilation is a technique due to Turchin [1] which allows for the construction of program optimisers that are both simple and extremely powerful. Supercompilation is capable of achieving transformations such as deforestation [2], function specialisation and constructor specialisation [3]. Inspired by Mitchellâ€™s promising results [4], we show how the callbyneed supercompilation algorithm can be recast to be based explicitly on an evaluator, and in the process extend it to deal with recursive let expressions.
Towards higherlevel supercompilation
 SECOND INTERNATIONAL WORKSHOP ON METACOMPUTATION IN RUSSIA
, 2010
"... 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 higherlevel one for proving improvement lemmas. The lemmas thus obtained are used to transform expressions labeling nodes in process trees, in ..."
Abstract

Cited by 10 (7 self)
 Add to MetaCart
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 higherlevel one for proving improvement lemmas. The lemmas thus obtained are used to transform expressions labeling nodes in process trees, in order to avoid premature generalizations. Such kind of supercompilation, based on a combination of several metalevels, is called higherlevel supercompilation (to differentiate it from higherorder supercompilation related to transforming higherorder functions). Higherlevel supercompilation may be considered as an application of a more general principle of metasystem transition.
Supercompiler HOSC 1.1: proof of termination
, 2010
"... The paper contributes the proof of termination of an experimental supercompiler HOSC dealing with higherorder functions. ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
The paper contributes the proof of termination of an experimental supercompiler HOSC dealing with higherorder functions.
Supercompiler HOSC: proof of correctness
, 2010
"... The paper presents the proof of correctness of an experimental supercompiler HOSC dealing with higherorder functions. ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
The paper presents the proof of correctness of an experimental supercompiler HOSC dealing with higherorder functions.
A GraphBased Definition of Distillation
 SECOND INTERNATIONAL WORKSHOP ON METACOMPUTATION IN RUSSIA (META 2010)
, 2010
"... In this paper, we give a graphbased definition of the distillation transformation algorithm. This definition is made within a similar framework to the positive supercompilation algorithm, thus allowing for a more indepth comparison of the two algorithms. We find that the main distinguishing charac ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
In this paper, we give a graphbased definition of the distillation transformation algorithm. This definition is made within a similar framework to the positive supercompilation algorithm, thus allowing for a more indepth comparison of the two algorithms. We find that the main distinguishing characteristic between the two algorithms is that in positive supercompilation, generalization and folding are performed with respect to expressions, while in distillation they are performed with respect to graphs. We also find that while only linear improvements in performance are possible using positive supercompilation, superlinear improvements are possible using distillation. This is because computationally expensive terms can only be extracted from within loops when generalizing graphs rather than expressions.
Supercompiler HOSC 1.5: homeomorphic embedding and generalization in a higherorder setting
, 2010
"... The paper describes the algorithm of the supercompiler HOSC 1.5, an experimental specializer dealing with programs written in a higherorder functional language. The design decisions behind the algorithm are illustrated through a series of examples. Of particular interest are the decisions related t ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
The paper describes the algorithm of the supercompiler HOSC 1.5, an experimental specializer dealing with programs written in a higherorder functional language. The design decisions behind the algorithm are illustrated through a series of examples. Of particular interest are the decisions related to generalization and homeomorphic embedding of expressions with bound variables.
Improving supercompilation: tagbags, rollback, speculation, normalisation, and generalisation
, 2011
"... Supercompilation is a powerful technique for program optimisation and theorem proving. In this paper we describe and evaluate three improvements to the Cambridge Haskell Supercompiler (CHSC). We reduce supercompiled program size by the use of a weak normaliser and aggressive rollback, and we improve ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Supercompilation is a powerful technique for program optimisation and theorem proving. In this paper we describe and evaluate three improvements to the Cambridge Haskell Supercompiler (CHSC). We reduce supercompiled program size by the use of a weak normaliser and aggressive rollback, and we improve the performance of supercompiled programs by heap speculation and generalisation. Our generalisation method is simpler than those in the literature, and is better at generalising computations involving primitive operations such as those on machine integers. We also provide the first comprehensive account of the tagbag termination mechanism.
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 4 (3 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.