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
Equivalence of finite-valued tree transducers is decidable
Mathematical Systems Theory
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
Languages, automata, and logic
Handbook of formal languages, vol. 3
Generic downwards accumulations
Science of Computer Programming - Special issue on mathematics of program construction
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
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
Benefits of Tree Transducers for Optimizing Functional Programs
Proceedings of the 18th Conference on Foundations of Software Technology and Theoretical Computer Science
Tree Automata and Term Rewrite Systems
RTA '00 Proceedings of the 11th International Conference on Rewriting Techniques and Applications
Upwards and Downwards Accumulations on Trees
Proceedings of the Second International Conference on Mathematics of Program Construction
Transformations and translations from the point of view of generalized finite automata theory
STOC '69 Proceedings of the first annual ACM symposium on Theory of computing
Syntactic composition of top-down tree transducers is short cut fusion
Mathematical Structures in Computer Science
The equivalence problem for deterministic MSO tree transducers is decidable
Information Processing Letters
Formal Efficiency Analysis for Tree Transducer Composition
Theory of Computing Systems
Journal of Functional Programming
Attribute grammars fly first-class: how to do aspect oriented programming in Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Foundations of XML Processing: The Tree-Automata Approach
Foundations of XML Processing: The Tree-Automata Approach
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Polynomial-time inverse computation for accumulative functions with multiple data traversals
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
An overview of probabilistic tree transducers for natural language processing
CICLing'05 Proceedings of the 6th international conference on Computational Linguistics and Intelligent Text Processing
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Categorical views on computations on trees
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Hi-index | 0.00 |
A tree transducer is a set of mutually recursive functions transforming an input tree into an output tree. Macro tree transducers extend this recursion scheme by allowing each function to be defined in terms of an arbitrary number of accumulation parameters. In this paper, we show how macro tree transducers can be concisely represented in Haskell, and demonstrate the benefits of utilising such an approach with a number of examples. In particular, tree transducers afford a modular programming style as they can be easily composed and manipulated. Our Haskell representation generalises the original definition of (macro) tree transducers, abolishing a restriction on finite state spaces. However, as we demonstrate, this generalisation does not affect compositionality.