The worker/wrapper transformation is a general-purpose technique for refactoring recursive pro-grams to improve their performance. The two previous approaches to formalising the technique were based upon different recursion operators and different correctness conditions. In this article we show how these two approaches can be generalised in a uniform manner by combining their correctness conditions, how the theory can be extended with new conditions that are necessary (in addition to sufficient) to ensure the correctness of the worker/wrapper technique, and explore the benefits that result. All the proofs have been mechanically verified using the Agda system.
Morgan's approach to program development is a refinement calculus: using this method, programs are d...
In this paper we explain how recursion operators can be used to structure and reason about program s...
We extend the structured recursive programming discipline, which favors the use of fold operations i...
The worker/wrapper transformation is a general-purpose technique for refactoring recursive pro-grams...
The worker/wrapper transformation is a general-purpose technique for refactoring recursive programs ...
The worker/wrapper transformation is a general way of changing the type of a recursive definition, u...
The worker/wrapper transformation is a general technique for improving the performance of re-cursive...
Abstract-Write down the definition of a recursion operator on a piece of paper. Tell me its type, bu...
Much research in program optimization has focused on formal approaches to correctness: proving that ...
A program optimisation must have two key properties: it must preserve the meaning of programs (corre...
Write down the definition of a recursion operator on a piece of paper. Tell me its type, but be care...
AbstractThis paper shows how the Improvement Theorem — a semantic condition for establishing the tot...
In software engineering, altering a program's original implementation disconnects it from the model ...
Recursion is considered a challenging programming technique by many students. There are two common a...
AbstractA calculus and a model for a first-order functional language with sharing is presented. In m...
Morgan's approach to program development is a refinement calculus: using this method, programs are d...
In this paper we explain how recursion operators can be used to structure and reason about program s...
We extend the structured recursive programming discipline, which favors the use of fold operations i...
The worker/wrapper transformation is a general-purpose technique for refactoring recursive pro-grams...
The worker/wrapper transformation is a general-purpose technique for refactoring recursive programs ...
The worker/wrapper transformation is a general way of changing the type of a recursive definition, u...
The worker/wrapper transformation is a general technique for improving the performance of re-cursive...
Abstract-Write down the definition of a recursion operator on a piece of paper. Tell me its type, bu...
Much research in program optimization has focused on formal approaches to correctness: proving that ...
A program optimisation must have two key properties: it must preserve the meaning of programs (corre...
Write down the definition of a recursion operator on a piece of paper. Tell me its type, but be care...
AbstractThis paper shows how the Improvement Theorem — a semantic condition for establishing the tot...
In software engineering, altering a program's original implementation disconnects it from the model ...
Recursion is considered a challenging programming technique by many students. There are two common a...
AbstractA calculus and a model for a first-order functional language with sharing is presented. In m...
Morgan's approach to program development is a refinement calculus: using this method, programs are d...
In this paper we explain how recursion operators can be used to structure and reason about program s...
We extend the structured recursive programming discipline, which favors the use of fold operations i...