Attribute grammars as a functional programming paradigm
Proc. of a conference on Functional programming languages and computer architecture
Composition and evaluation of attribute coupled grammars
Acta Informatica
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
The generating power of total deterministic tree transducer
Information and Computation
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Declarative Program Transformation: A Deforestation Case-Study
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
A Functional Semantics of Attribute Grammars
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Benefits of Tree Transducers for Optimizing Functional Programs
Proceedings of the 18th Conference on Foundations of Software Technology and Theoretical Computer Science
Journal of Functional Programming
Composition of functions with accumulating parameters
Journal of Functional Programming
Using Circular Programs to Deforest in Accumulating Parameters
Higher-Order and Symbolic Computation
A shortcut fusion rule for circular program calculation
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Attribute Grammars and Categorical Semantics
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Shortcut fusion rules for the derivation of circular and higher-order monadic programs
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Generalized2 sequential machine maps
Journal of Computer and System Sciences
Initial algebra semantics is enough!
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Categorical descriptional composition
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Attribute Grammars as Recursion Schemes over Cyclic Representations of Zippers
Electronic Notes in Theoretical Computer Science (ENTCS)
On building cyclic and shared structures in Haskell
Formal Aspects of Computing - Celebrating the 60th Birthday of Carroll Morgan
Hi-index | 5.23 |
Evaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computing a function expressing the dependencies of the synthesized attributes on inherited attributes. This higher-order functional approach to attribute evaluation can straightforwardly be implemented in a higher-order lazy functional language like Haskell. The resulting evaluation functions are, however, not easily amenable to optimization when we want to compose two attribute grammars. We present an alternative first-order functional interpretation of attribute grammars where the input tree is replaced by an extended cyclic tree each node of which is aware of its context viewed as an additional child tree. These cyclic representations of zippers (trees with their context) are natural generalizations of doubly-linked lists to trees over an arbitrary signature. Then we show that, up to that representation, descriptional composition of attribute grammars reduces to the composition of tree transducers.