2014
DOI: 10.1017/s0956796814000045
|View full text |Cite
|
Sign up to set email alerts
|

Work it, wrap it, fix it, fold it

Abstract: The worker/wrapper transformation is a general-purpose technique for refactoring recursive programs to improve their performance. The two previous approaches to formalising the technique were based upon different recursion operators and different correctness conditions. In this paper we show how these two approaches can be generalised in a uniform manner by combining their correctness conditions, extend the theory with new conditions that are both necessary and sufficient to ensure the correctness of the worke… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
24
0

Year Published

2014
2014
2015
2015

Publication Types

Select...
3
2
1

Relationship

4
2

Authors

Journals

citations
Cited by 9 publications
(24 citation statements)
references
References 15 publications
0
24
0
Order By: Relevance
“…The pattern of the worker/wrapper transformation can be captured by a theorem that expresses necessary and sufficient conditions for its correctness [25]. This theorem has assumptions that express the required relationship between the functions abs and rep, and conditions that provide a specification for the function g in terms of abs, rep and f:…”
Section: The Fix Theorymentioning
confidence: 99%
See 1 more Smart Citation
“…The pattern of the worker/wrapper transformation can be captured by a theorem that expresses necessary and sufficient conditions for its correctness [25]. This theorem has assumptions that express the required relationship between the functions abs and rep, and conditions that provide a specification for the function g in terms of abs, rep and f:…”
Section: The Fix Theorymentioning
confidence: 99%
“…The proof given in [25] for the original factorisation theorem centers on the use of the rolling and fusion rules. Because we have proven analogous rules in our setting, the proofs can be adapted fairly straightforwardly, simply by keeping the general form of the proofs and using the rules of improvement theory as structural rules that fit between the original steps.…”
Section: Given Value Contexts Abs Rep F G For Which X Is Free Satimentioning
confidence: 99%
“…The usual application of this technique would be to write the worker to use a different type than the original program that supports more efficient operations, thus hopefully resulting in a more efficient program overall. Gill and Hutton gave conditions for the correctness of the transformation; here we present the more general theory and correctnesss conditions recently developed by Sculthorpe and Hutton [25].…”
Section: Worker/wrapper Transformationmentioning
confidence: 97%
“…The worker/wrapper transformation (WW) [7,25] is a technique for improving the efficiency of a recursive program by changing the data type being operated on. The idea is to factorize a program prog :: a into a more efficient worker program work :: b, and a wrapper function wrap :: b → a that converts the result into a value of the original type.…”
Section: Worker/wrapper Transformationmentioning
confidence: 99%
“…The mechanization process can often reveal obstacles that do not appear in pen-and-paper proofs, either because of implementation-specific details, or because the pen-and-paper proofs gloss over details that may seem obvious to a human, but are less obvious to a machine. This paper reports on our experience using HERMIT to mechanize optimization techniques, using the worker/wrapper [7,25], concatenate vanishes [29] and tupling [1,9] transformations as case studies. We first introduce these transformations ( §2), then we overview HERMIT and what it offers to the mechanization process ( §3).…”
Section: Introductionmentioning
confidence: 99%