Composition and evaluation of attribute coupled grammars
Acta Informatica
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
New Generation Computing
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Syntax-Directed Semantics: Formal Models Based on Tree Transducers
Syntax-Directed Semantics: Formal Models Based on Tree Transducers
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A Generalization of Short-Cut Fusion and its Correctness Proof
Higher-Order and Symbolic Computation
Types, Abstractions, and Parametric Polymorphism, Part 2
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Retracting Some Paths in Process Algebra
CONCUR '96 Proceedings of the 7th International Conference on Concurrency Theory
Benefits of Tree Transducers for Optimizing Functional Programs
Proceedings of the 18th Conference on Foundations of Software Technology and Theoretical Computer Science
On Deforesting Parameters of Accumulating Maps
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
Homomorphisms and Promotability
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
Composition of functions with accumulating parameters
Journal of Functional Programming
Using Circular Programs to Deforest in Accumulating Parameters
Higher-Order and Symbolic Computation
Fusion with stacks and accumulating parameters
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Monadic augment and generalised short cut fusion
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Lightweight fusion by fixed point promotion
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal Efficiency Analysis for Tree Transducer Composition
Theory of Computing Systems
A foundation for GADTs and inductive families: dependent polynomial functor approach
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
A shortcut fusion approach to accumulations
Science of Computer Programming
A short cut to parallelization theorems
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
This paper develops a new framework for fusion that is designed for eliminating the intermediate data structures involved in the composition of functions that have one accumulating parameter. The new fusion framework comprises two steps: algebraic fusion and its subsequent improvement process. The key idea in our development is to regard functions with an accumulating parameter as functions that operate over the monoid of data contexts. Algebraic fusion composes each such function with a monoid homomorphism that is derived from the definition of the consumer function to obtain a higher-order function that computes over the monoid of endofunctions. The transformation result may be further refined by an improvement process, which replaces the operation over the monoid of endofunctions (i.e., function closures) with another monoid operation over a monoid structure other than function closures. Using our framework, one can formulate a particular solution to the fusion problem by devising appropriate monoids and monoid homomorphisms. This provides a unified exposition of a variety of fusion methods that have been developed so far in different formalisms. Furthermore, the cleaner formulation makes it possible to argue about some delicate issues on a firm mathematical basis. We demonstrate that algebraic fusion and improvement in the world of complete pointed partial orders (CPOs) and continuous functions can correctly fuse functions that operate on partial and infinite data structures. We also show that subtle differences in termination behaviours of transformed programmes caused by certain different fusion methods can be cleanly explained by corresponding improvement processes that have different underlying monoid structures.