Results 11  20
of
33
Regular Approximation of Computation Paths in Logic and Functional Languages
, 1996
"... . The aim of this work is to compute descriptions of successful computation paths in logic or functional program executions. Computation paths are represented as terms, built from special constructor symbols, each constructor symbol corresponding to a specific clause or equation in a program. Such t ..."
Abstract

Cited by 22 (5 self)
 Add to MetaCart
. The aim of this work is to compute descriptions of successful computation paths in logic or functional program executions. Computation paths are represented as terms, built from special constructor symbols, each constructor symbol corresponding to a specific clause or equation in a program. Such terms, called traceterms, are abstractions of computation trees, which capture information about the control flow of the program. A method of approximating traceterms is described, based on wellestablished methods for computing regular approximations of terms. The special function symbols are first introduced into programs as extra arguments in predicates or functions. Then a regular approximation of the program is computed, describing the terms occurring in some set of program executions. The approximation of the extra arguments (the traceterms) can then be examined to see what computation paths were followed during the computation. This information can then be used to control both offl...
A Supercompiler for Core Haskell
"... Abstract. Haskell is a functional language, with features such as higher order functions and lazy evaluation, which allow succinct programs. These highlevel features present many challenges for optimising compilers. We report practical experiments using novel variants of supercompilation, with spec ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
Abstract. Haskell is a functional language, with features such as higher order functions and lazy evaluation, which allow succinct programs. These highlevel features present many challenges for optimising compilers. We report practical experiments using novel variants of supercompilation, with special attention to let bindings and the generalisation technique. 1
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 15 (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.
Towards Integrating Partial Evaluation in a Specialization Framework based on Generic Abstract Interpretation (Extended Abstract)
 Proceedings of the ILPS’97 Workshop on Specialisation of Declarative Programs and its Application, K.U. Leuven, Tech. Rep. CW 255
, 1997
"... Interpretation Germ'an Puebla John Gallagher y Manuel Hermenegildo (Extended Abstract) 1 Introduction Partial evaluation [JGS93, DGT96] specializes programs for known values of the input. Partial evaluation of logic programs has received considerable attention [Neu90, LS91, Sah93, Gal93, Le ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Interpretation Germ'an Puebla John Gallagher y Manuel Hermenegildo (Extended Abstract) 1 Introduction Partial evaluation [JGS93, DGT96] specializes programs for known values of the input. Partial evaluation of logic programs has received considerable attention [Neu90, LS91, Sah93, Gal93, Leu97] and several algorithms parameterized by different control strategies have been proposed which produce useful partial evaluations of programs. Regarding the correctness of such transformations, two conditions, defined on the set of atoms to be partially evaluated, have been identified which which ensure correctness of the transformation: "closedness" and "independence" [LS91]. From a practical point of view, effectiveness, that is, finding suitable control strategies which provide an appropriate level of specialization while ensuring termination, is a crucial problem which has also received considerable attention. Much work has been devoted to the study of such control strategies in the ...
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.
Transformation and Analysis of Functional Programs
"... This thesis describes techniques for transforming and analysing functional programs. We operate on a core language, to which Haskell programs can be reduced. We present a range of techniques, all of which have been implemented and evaluated. We make programs shorter by defining a library which abstr ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
This thesis describes techniques for transforming and analysing functional programs. We operate on a core language, to which Haskell programs can be reduced. We present a range of techniques, all of which have been implemented and evaluated. We make programs shorter by defining a library which abstracts over common data traversal patterns, removing boilerplate code. This library only supports traversals having valuespecific behaviour for one type, allowing a simpler programming model. Our library allows concise expression of traversals with competitive performance. We make programs faster by applying a variant of supercompilation. As a result of practical experiments, we have identified modifications to the standard supercompilation techniques – particularly with respect to let bindings and the generalisation technique. We make programs safer by automatically checking for potential patternmatch errors. We define a transformation that takes a higherorder program
The Supercompiler Scp4: General Structure
, 2004
"... The author constructed a transformer Scp4 of functional programs. The transformer uses the technology known as Turchin’s supercompilation. Scp4 was implemented in a functional language Refal5. The input language for Scp4 is also Refal5. In the paper we consider the general structure of the superco ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
The author constructed a transformer Scp4 of functional programs. The transformer uses the technology known as Turchin’s supercompilation. Scp4 was implemented in a functional language Refal5. The input language for Scp4 is also Refal5. In the paper we consider the general structure of the supercompiler and give a number of examples of transformations.
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 Grammarbased Dataflow Analysis to Stop Deforestation
 CAAP'94: Proceedings of the 19th International Colloquium on Trees in Algebra and Programming, volume 787 of Lecture Notes in Computer Science
, 1994
"... . Wadler's deforestation algorithm removes intermediate data structures from functional programs, but is only guaranteed to terminate for treeless programs. Chin has shown how one can apply deforestation to all firstorder programs: annotate nontreeless subterms and apply the extended deforestatio ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
. Wadler's deforestation algorithm removes intermediate data structures from functional programs, but is only guaranteed to terminate for treeless programs. Chin has shown how one can apply deforestation to all firstorder programs: annotate nontreeless subterms and apply the extended deforestation algorithm which essentially leaves annotated subterms untransformed. We develop a new technique of putting annotations on programs. The basic idea is to compute a finite grammar which approximates the set of terms that the deforestation algorithm encounters. The technique extends Wadler's and Chin's in a certain sense. 1 Introduction Modern functional programming languages like Miranda 1 [Tur90] lend themselves to a certain elegant style of programming which exploits higherorder functions, lazy evaluation and intermediate data structures; Hughes [Hug90] gives illuminating examples. While this programming style makes it easy to read and write programs, it also results in inefficient pro...
Semantics Modifiers: An Approach To NonStandard Semantics Of Programming Languages
 Third Fuji International Symposium on Functional and Logic Programming
, 1998
"... this paper, semantics modifiers exist for a wide class of computational problems, including nonstandard computation, program analysis and ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
this paper, semantics modifiers exist for a wide class of computational problems, including nonstandard computation, program analysis and