Results 1  10
of
10
Reuse by Program Transformation
 Functional Programming Trends 1999. Intellect, 2000. Selected papers from the 1st Scottish Functional Programming Workshop
, 2000
"... Certain adaptations, that are usually performed manually by functional programmers are formalized by program transformations in this paper. We focus on adaptations to obtain a more reusable version of a program or a version needed for a special use case. The paper provides a few examples, namely pro ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
(Show Context)
Certain adaptations, that are usually performed manually by functional programmers are formalized by program transformations in this paper. We focus on adaptations to obtain a more reusable version of a program or a version needed for a special use case. The paper provides a few examples, namely propagation of additional parameters, introduction of monadic style, and symbolic rewriting. The corresponding transformations are specified by inference rules in the style of natural semantics. Preservation properties such as type and semantics preservation are discussed. The overall thesis of this paper is that suitable operator suites for automated adaptations and a corresponding transformational programming style can eventually be combined with other programming styles, such as polymorphic programming, modular programming, or the monadic style, in order to improve reusability of functional programs. ⋆ Partial support received from the Netherlands Organization for Scientific Research (NWO) under the Generation of Program Transformation Systems project
Lambda Calculi and Linear Speedups
 THE ESSENCE OF COMPUTATION: COMPLEXITY, ANALYSIS, TRANSFORMATION, NUMBER 2566 IN LECTURE NOTES IN COMPUTER SCIENCE
, 2002
"... The equational theories at the core of most functional programming are variations on the standard lambda calculus. The bestknown of these is the callbyvalue lambda calculus whose core is the valuebeta computation rule (#x.M)V M [ V / x ]whereV is restricted to be a value rather than an arb ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
The equational theories at the core of most functional programming are variations on the standard lambda calculus. The bestknown of these is the callbyvalue lambda calculus whose core is the valuebeta computation rule (#x.M)V M [ V / x ]whereV is restricted to be a value rather than an arbitrary term. This paper
PATH, a Program Transformation System for Haskell
, 2002
"... PATH (Programmer Assistant for Transforming Haskell) is a userdirected program transformation system for Haskell. This dissertation describes PATH and the technical contributions made in its development. PATH uses a new method for program transformation in which 1) total correctness is preserved, i ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
PATH (Programmer Assistant for Transforming Haskell) is a userdirected program transformation system for Haskell. This dissertation describes PATH and the technical contributions made in its development. PATH uses a new method for program transformation in which 1) total correctness is preserved, i.e., transformations can neither introduce nor eliminate nontermination; 2) infinite data structures and partial functions can be transformed; 3) generalization of programs can be done as well as specialization of programs; 4) neither an improvement nor an approximation relation is required to prove equivalence of programs—reasoning can be directly about program equivalence. Current methods (such as fold/unfold, expression procedures, and the tick calculus) all lack one or more of these features. PATH uses a more expressive logic for proving equivalence of programs than previous transformation systems. A logic more general than twolevel horn clauses (used in the CIP transformation system) is needed but the full generality of first order logic is not required. This logic used in PATH lends itself to the graphical manipulation of program derivations (i.e., proofs of program equivalence). PATH incorporates a language extension which makes programs and derivations more generic: programs and derivations can be generic with respect to the length of tuples; i.e., a function can be written that works uniformly on 2tuples, 3tuples, and etc. iii ivCopyright c ○ 2002 by Mark Anders Tullsen All rights reserved. v viAcknowledgments I wish to thank my advisor Paul Hudak for many years of constructive criticism, guidance, and encouragement. I also wish to thank the other readers of this dissertation: John Peterson, Zhong Shao, and Tim Sheard. To my wife, Teresa, and my children Andrew, Rachel, Zachary, and Jonathan: a heartfelt thanks for your support and patience while I have been working on this dissertation. Soli Deo Gloria. vii viiiContents
Software Language Engineering by Intentional Rewriting
 ECEASST; Software Quality and Maintainability
, 2014
"... International Workshop on ..."
(Show Context)
N.D.: Distillation with Labelled Transition Systems
 In: Proceedings of the SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation
, 2012
"... In this paper, we provide an improved basis for the “distillation” program transformation. It is known that superlinear speedups can be obtained using distillation, but cannot be obtained by other earlier automatic program transformation techniques such as deforestation, positive supercompilation ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
(Show Context)
In this paper, we provide an improved basis for the “distillation” program transformation. It is known that superlinear speedups can be obtained using distillation, but cannot be obtained by other earlier automatic program transformation techniques such as deforestation, positive supercompilation and partial evaluation. We give distillation an improved semantic basis, and explain how superlinear speedups can occur.
Lambda calculi and linear speedups
 The essence of computation: complexity, analysis, transformation, number 2566 in Lecture Notes in Computer Science
, 2002
"... www.cs.chalmers.se Abstract. The equational theories at the core of most functional programming are variations on the standard lambda calculus. The bestknown of these is the callbyvalue lambda calculus whose core is the valuebeta computation rule (λx.M)V → M [V/x] where V is restricted to be a ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
www.cs.chalmers.se Abstract. The equational theories at the core of most functional programming are variations on the standard lambda calculus. The bestknown of these is the callbyvalue lambda calculus whose core is the valuebeta computation rule (λx.M)V → M [V/x] where V is restricted to be a value rather than an arbitrary term. This paper investigates the transformational power of this core theory of functional programming. The main result is that the equational theory of the callbyvalue lambda calculus cannot speed up (or slow down) programs by more than a constant factor. The corresponding result also holds for callbyneed but we show that it does not hold for callbyname: there are programs for which a single beta reduction can change the program’s asymptotic complexity. 1
A Hierarchy of Program Transformers
"... Abstract. In this paper, we describe a hierarchy of program transformers in which the transformer at each level of the hierarchy builds on top of the transformers at lower levels. The program transformer at the bottom of the hierarchy corresponds to positive supercompilation, and that at the next le ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. In this paper, we describe a hierarchy of program transformers in which the transformer at each level of the hierarchy builds on top of the transformers at lower levels. The program transformer at the bottom of the hierarchy corresponds to positive supercompilation, and that at the next level corresponds to the first published definition of distillation [4]. We then show how the more recently published definition of distillation [5] can be described using this hierarchy. We see that this moves up through the levels of the transformation hierarchy until no further improvements can be made. The resulting definition of distillation uses only finite data structures, as opposed to the definition in [5], and we therefore argue that it is easier to understand and to implement. 1
THE QUEEN’S UNIVERSITY OF BELFAST by
, 1994
"... It is generally a difficult task to construct efficient implementations of numerical mathematical algorithms for execution on highperformance computer systems. The difficulty arises from the need to express an implementation in a form that reflects the nature of the computer system, rather than a f ..."
Abstract
 Add to MetaCart
(Show Context)
It is generally a difficult task to construct efficient implementations of numerical mathematical algorithms for execution on highperformance computer systems. The difficulty arises from the need to express an implementation in a form that reflects the nature of the computer system, rather than a form that reflects the computations performed by the algorithm. This thesis develops the method of program transformation to derive automatically efficient implementations of algorithms from highlevel, machineindependent specifications. The primary system considered is the AMT DAP array processor, but sequential and vector systems are also considered. The transformational method is further extended to automatically tailor implementations to use sparse programming techniques. Acknowledgements My thanks are due to Dr Terence Harmer for his patience and guidance through the four years this thesis has been in the making; to the members of the Department of Computer Science at QUB for a multitude of stimulating coffee breaks; and to my fellow candidates for their support (and for making my working hours look almost sane).
READS
, 2012
"... All intext references underlined in blue are linked to publications on ResearchGate, letting you access and read them immediately. ..."
Abstract
 Add to MetaCart
(Show Context)
All intext references underlined in blue are linked to publications on ResearchGate, letting you access and read them immediately.