## Fusing Logic and Control with Local Transformations: An Example Optimization (2001)

### Cached

### Download Links

- [archive.cs.uu.nl]
- [www.cs.uu.nl]
- [www.cs.uu.nl]
- [www.cs.uu.nl]
- [www.st.ewi.tudelft.nl]
- [www.cs.uu.nl]
- [crab.rutgers.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | Workshop on Reduction Strategies in Rewriting and Programming (WRS’01), volume 57 of Electronic Notes in Theoretical Computer Science |

Citations: | 11 - 7 self |

### BibTeX

@INPROCEEDINGS{Johann01fusinglogic,

author = {Patricia Johann and Eelco Visser},

title = {Fusing Logic and Control with Local Transformations: An Example Optimization},

booktitle = {Workshop on Reduction Strategies in Rewriting and Programming (WRS’01), volume 57 of Electronic Notes in Theoretical Computer Science},

year = {2001},

publisher = {Elsevier Science Publishers}

}

### OpenURL

### Abstract

Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability of code, its main disadvantage is the computational overhead it incurs. Fusion techniques can be used to combine the reusability of abstract programs with the e#ciency of specialized programs.

### Citations

955 |
Advanced Compiler Design and Implementation
- Muchnick
- 1997
(Show Context)
Citation Context ...ontrol of a strategy. In conventional program optimization, transformations are applied throughout a program. In optimizing imperative programs, complex transformations are applied to entire programs =-=[12]. In-=- the style of compilation by transformation [3] — as applied, for example, in the Glasgow Haskell Compiler [14] — a large number of small, almost trivial program transformations are applied throug... |

639 |
Partial Evaluation and Automatic Program Generation. Available online: http://www.itu.dk/people/sestoft/pebook
- Jones, Gomard, et al.
- 1993
(Show Context)
Citation Context ...cursion in term traversals should be regarded as program specialization then, since specialization can be seen as an automated instance of the traditional fold/unfold program optimization methodology =-=[7]-=-, optimization of traversals should indeed be achievable via fold/unfold transformations. These connections are deserving of further investigation. Finally, measurements to evaluate the optimizations ... |

620 |
Compiling with Continuations
- Appel
- 1992
(Show Context)
Citation Context ...ects. Small local transformations have been dubbed “humble transformations” in [14]. Such transformations are used extensively in optimizing compilers based on the compilation-by-transformation id=-=iom [8,9,1,13]-=-. They are also used to some degree in most compilers, although not necessarily recognizable as rewrite rules in the implementation. The optimization of innermost presented in this paper was inspired ... |

400 | Deforestation: Transforming programs to eliminate trees
- Wadler
- 1990
(Show Context)
Citation Context ...versions of programs from their abstract composite versions. For example, in deforestation of functional programs, intermediate data structures are eliminated by fusing together function compositions =-=[6,11,17]-=-. Fusion also enables transformation from an algebraic style of programming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten i... |

132 | Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5
- Visser
- 2001
(Show Context)
Citation Context ...ramming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten in order to reuse memory allocated to large matrices [2,4]. Stratego =-=[15,16]-=- is a domain-specific language for the specification of program transformation systems based on the paradigm of rewriting strategies. Stratego separates the specification of basic transformation rules... |

109 | A Tolmach. Building program optimizers with rewriting strategies
- Visser, Benaissa
- 1998
(Show Context)
Citation Context ...ramming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten in order to reuse memory allocated to large matrices [2,4]. Stratego =-=[15,16]-=- is a domain-specific language for the specification of program transformation systems based on the paradigm of rewriting strategies. Stratego separates the specification of basic transformation rules... |

82 | A transformation-based optimiser for Haskell
- Jones, Santos
- 1998
(Show Context)
Citation Context ...timizing imperative programs, complex transformations are applied to entire programs [12]. In the style of compilation by transformation [3] — as applied, for example, in the Glasgow Haskell Compile=-=r [14] �-=-�� a large number of small, almost trivial program transformations are applied throughout a program to achieve large-scale optimization by accumulating small program changes. The style of optimization... |

73 | Warm fusion: Deriving buildcatas from recursive definitions
- Launchbury, Sheard
- 1995
(Show Context)
Citation Context ...versions of programs from their abstract composite versions. For example, in deforestation of functional programs, intermediate data structures are eliminated by fusing together function compositions =-=[6,11,17]-=-. Fusion also enables transformation from an algebraic style of programming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten i... |

72 | Compilation by Program Transformation
- Kelsey
- 1989
(Show Context)
Citation Context ...ects. Small local transformations have been dubbed “humble transformations” in [14]. Such transformations are used extensively in optimizing compilers based on the compilation-by-transformation id=-=iom [8,9,1,13]-=-. They are also used to some degree in most compilers, although not necessarily recognizable as rewrite rules in the implementation. The optimization of innermost presented in this paper was inspired ... |

35 |
Compilation of functional languages by program transformation
- Fradet, Métayer
- 1991
(Show Context)
Citation Context ...zation, transformations are applied throughout a program. In optimizing imperative programs, complex transformations are applied to entire programs [12]. In the style of compilation by transformation =-=[3] —-=- as applied, for example, in the Glasgow Haskell Compiler [14] — a large number of small, almost trivial program transformations are applied throughout a program to achieve large-scale optimization ... |

33 | A Calculational Fusion System HYLO
- Onoue, Hu, et al.
- 1997
(Show Context)
Citation Context ... systems is discussed in [10]. Term traversals are modelled there by fold functions but, since the fold algebras under consideration are updateable, standard fusion techniques for functional programs =-=[17,11,18]-=- are not immediately applicable. The fusion techniques presented here may nevertheless provide a means of implementing optimizations which automatically shortcut recursion in term traversals. If, as s... |

23 | Warm fusion in Stratego: A case study in generation of program transformation systems
- Johann, Visser
- 2000
(Show Context)
Citation Context ...versions of programs from their abstract composite versions. For example, in deforestation of functional programs, intermediate data structures are eliminated by fusing together function compositions =-=[6,11,17]-=-. Fusion also enables transformation from an algebraic style of programming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten i... |

18 | An Algebraic Programming Style for Numerical Software and its
- Dinesh, Haveraaen, et al.
- 2000
(Show Context)
Citation Context ...ic style of programming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten in order to reuse memory allocated to large matrices =-=[2,4]-=-. Stratego [15,16] is a domain-specific language for the specification of program transformation systems based on the paradigm of rewriting strategies. Stratego separates the specification of basic tr... |

18 |
Formal software engineering for computational modelling
- Haveraaen, Friis, et al.
- 1999
(Show Context)
Citation Context ...ic style of programming resembling mathematical specification of numeric programs to an updating style in which function arguments are overwritten in order to reuse memory allocated to large matrices =-=[2,4]-=-. Stratego [15,16] is a domain-specific language for the specification of program transformation systems based on the paradigm of rewriting strategies. Stratego separates the specification of basic tr... |

11 | Functional Transformation Systems
- Kort, Lammel, et al.
- 2000
(Show Context)
Citation Context ...eric and automatable fusion strategy which is provably correct with respect to the semantics in [16]. The importance of optimizing term traversals in functional transformation systems is discussed in =-=[10]-=-. Term traversals are modelled there by fold functions but, since the fold algebras under consideration are updateable, standard fusion techniques for functional programs [17,11,18] are not immediatel... |

10 |
cut fusion: proved and improved
- Short
- 2001
(Show Context)
Citation Context ...ugh not necessarily recognizable as rewrite rules in the implementation. The optimization of innermost presented in this paper was inspired by more general work on functional program optimization. In =-=[5]-=-, an optimization scheme for compositions of functions that uniformly consume algebraic data structures with functions that uniformly produce substitution instances of them is given. This scheme is ge... |

3 |
The Glasgow Haskell Compiler: a techical overview
- Jones, Hall, et al.
- 1993
(Show Context)
Citation Context ...ects. Small local transformations have been dubbed “humble transformations” in [14]. Such transformations are used extensively in optimizing compilers based on the compilation-by-transformation id=-=iom [8,9,1,13]-=-. They are also used to some degree in most compilers, although not necessarily recognizable as rewrite rules in the implementation. The optimization of innermost presented in this paper was inspired ... |

3 | Short cut fusion: Proved and improved
- Johann
- 2001
(Show Context)
Citation Context ..., 9, 1, 14]. They are also used to some degree in most others compilers. The optimization of innermost presented in this paper was inspired by more general work on functional program optimization. In =-=[6]-=-, an optimization scheme for compositions of functions that uniformly consume algebraic data structures with functions that uniformly produce substitution instances of them is given. This scheme is ge... |

1 |
Functional transformation systems. http://www.cwi.nl/ jvisser/papers
- Kort, Visser
- 2000
(Show Context)
Citation Context ...and provably correct fusion strategy which is provably correct with respect to the semantics in [16]. The importance of optimizing term traversals in functional transformation systems is discussed in =-=[5]-=-. Term traversals are modelled there by fold functions but, since the fold algebras under consideration are updatable, standard fusion techniques for functional programs [17, 10, 18] are not immediate... |