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
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
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
Retracting Some Paths in Process Algebra
CONCUR '96 Proceedings of the 7th International Conference on Concurrency Theory
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
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
On traced monoidal closed categories
Mathematical Structures in Computer Science
Categorical descriptional composition
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Hi-index | 0.00 |
We present a unifying solution to the problem of fusion of functions, where both the producer function and the consumer function have one accumulating parameter. The key idea in this development is to formulate the producer function as a function which computes over a monoid of data contexts. Upon this formulation, we develop a fusion method called algebraic fusion based on the elementary theory of universal algebra and monoids. The producer function is fused with a monoid homomorphism that is derived from the definition of the consumer function, and is turned into a higher-order function f that computes over the monoid of endofunctions.We then introduce a general concept called improvement, in order to reduce the cost of computing over the monoid of endofunctions (i. e., function closures). An improvement of the function f via a monoid homomorphism h is a function g that satisfies f =h ºg. This provides a principled way of finding a first-order function representing a solution to the fusion problem. It also presents a clean and unifying account for varying fusion methods that have been proposed so far. Furthermore, we show that our method extends to support partial and infinite data structures, by means of an appropriate monoid structure.