The promotion and accumulation strategies in transformational programming
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
A novel representation of lists and its application to the function "reverse"
Information Processing Letters
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Fundamental study: modular tree transducers
Theoretical Computer Science
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
The translation power of top-down tree-to-graph transducers
Journal of Computer and System Sciences
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typer inference builds a short cut to deforestation
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Algorithmic Language and Program Development
Algorithmic Language and Program Development
Concatenate, reverse and map vanish for free
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Comparison of Deforestation Techniques for Functional Programs and for Tree Transducers
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
Relating Accumulative and Non-accumulative Functional Programs
RTA '01 Proceedings of the 12th International Conference on Rewriting Techniques and Applications
Generalized2 sequential machine maps
Journal of Computer and System Sciences
Explicit binds: effortless efficiency with and without trees
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Hi-index | 0.00 |
Accumulation techniques were invented to transform functional programs, which intensively use append functions (like inefficient list reversal), into more efficient programs, which use accumulating parameters instead (like efficient list reversal). In this paper we present a generalized and automatic accumulation technique that also handles programs operating with unary functions on arbitrary tree structures and employing substitution functions on trees which may replace different designated symbols by different trees. We show that this transformation does not deteriorate the efficiency with respect to call-by-need reduction.