Results 1 -
5 of
5
Composition of functions with accumulating parameters
- Journal of Functional Programming
, 2004
"... Many functional programs with accumulating parameters are contained in the class of macro tree transducers. We present a program transformation technique that can be used to solve the efficiency problems due to creation and consumption of intermediate data structures in compositions of such function ..."
Abstract
-
Cited by 20 (9 self)
- Add to MetaCart
Many functional programs with accumulating parameters are contained in the class of macro tree transducers. We present a program transformation technique that can be used to solve the efficiency problems due to creation and consumption of intermediate data structures in compositions of such functions, where classical deforestation techniques fail. In order to do so, given two macro tree transducers under appropriate restrictions, we construct a single macro tree transducer that implements the composition of the two original ones. The imposed restrictions are more liberal than those in the literature on macro tree transducer composition, thus generalising previous results.
Relating Accumulative and Non-Accumulative Functional Programs
- In Rewriting Techniques and Applications, Proceedings, volume 2051 of LNCS
, 2001
"... We study the problem to transform functional programs, which intensively use append functions (like inefficient list reversal), into programs, which use accumulating parameters instead (like efficient list reversal). We give an (automatic) transformation algorithm for our problem and identify a clas ..."
Abstract
-
Cited by 12 (6 self)
- Add to MetaCart
We study the problem to transform functional programs, which intensively use append functions (like inefficient list reversal), into programs, which use accumulating parameters instead (like efficient list reversal). We give an (automatic) transformation algorithm for our problem and identify a class of functional programs, namely restricted 2-modular tree transducers, to which it can be applied. Moreover, since we get macro tree transducers as transformation result and since we also give the inverse transformation algorithm, we have a new characterization for the class of functions induced by macro tree transducers.
Composition of restricted Macro Tree Transducers
, 2001
"... A special class of functional programs can be modelled by Macro Tree Transducers. We present a technique that can be used to solve the efficiency problems due to creation and consumption of intermediate results in such functional programs, by constructing for two given Macro Tree Transducers, with a ..."
Abstract
-
Cited by 9 (6 self)
- Add to MetaCart
A special class of functional programs can be modelled by Macro Tree Transducers. We present a technique that can be used to solve the efficiency problems due to creation and consumption of intermediate results in such functional programs, by constructing for two given Macro Tree Transducers, with appropriate restrictions, a single Macro Tree Transducer that implements the composition of the two original ones. We show that this is possible, if the first Macro Tree Transducer is non-copying and the second one is weakly single-use. Thus, we obtain the characterization MAC_nc;MAC_wsu=MAC, which generalizes a previous result. We also develop two post-processing constructions that can be used for optimizing the Macro Tree Transducer obtained from the composition construction, by eliminating superfluous context parameters and superfluous traversals through the input tree. Further, we present two interesting applications of the above characterization to problems about non-copying Macro Tree Transducers.
Tree transducer based program transformations for Haskell+
, 2001
"... This document is intended as a first introduction to the programs of the Haskell+ group on implementing program transformations for functional programs (currently constituted by Armin Kühnemann, Rainer Vater, Janis Voigtländer and Andreas Maletti, previous work done by Christian Lescher and Matthias ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This document is intended as a first introduction to the programs of the Haskell+ group on implementing program transformations for functional programs (currently constituted by Armin Kühnemann, Rainer Vater, Janis Voigtländer and Andreas Maletti, previous work done by Christian Lescher and Matthias Höff). It is not self-contained as the program transformations are not described formally here, but references to the literature are given where appropriate. The system is based on the Haskell+ language for extending Haskell by macro attribute grammars (which are an extension of attribute grammars). This functional programming language is used for specifying different kinds of tree transducers as known from the literature. Several constructions for results from tree transducer theory are implemented in Haskell as transformations on Haskell+ programs. There is as yet just a rudimentary user interface, so this document will focus on implementation issues by describing the involved Haskell modules in short and giving hints for further implementation work. For illustrating the implemented program transformations, we will give a simple example each, as well as a complex example at the end, which makes combined use of several transformations. In
Annual Report 2000: Foundations of Programming
, 2000
"... Math. Rainer Vater Tel.: (+49) 351 - 463 8487 E-mail: Rainer.Vater@inf.tu-dresden.de Annual Report 2000 3 Ph.D. students of the DFG (German Research Foundation): Dipl.-Math. Claus Jurgensen (from May 1st) Tel.: (+49) 351 - 463 8253 E-mail: claus@orchid.inf.tu-dresden.de Scientic Auxiliaries ..."
Abstract
- Add to MetaCart
Math. Rainer Vater Tel.: (+49) 351 - 463 8487 E-mail: Rainer.Vater@inf.tu-dresden.de Annual Report 2000 3 Ph.D. students of the DFG (German Research Foundation): Dipl.-Math. Claus Jurgensen (from May 1st) Tel.: (+49) 351 - 463 8253 E-mail: claus@orchid.inf.tu-dresden.de Scientic Auxiliaries: Dipl.-Inf. Enrico Bormann (from May 16th) Tel.: (+49) 351 - 463 8374 E-mail: Enrico.Bormann@inf.tu-dresden.de Student Auxiliaries: Sean Eikenberg (until January 31st) Ivonne Frank (from October 16th) Andreas Maletti (from October 16th) Alexander Motzkau (until July 31st and from October 1st) Michael Peter (from February 1st until March 31st) Janis Voigtlander (from April 1st until September 30th) Foundations of Programming 3 Teaching 3.1 Teaching Areas in general Compiler construction

