Attribute grammars as a functional programming paradigm
Proc. of a conference on Functional programming languages and computer architecture
Higher order generalization in program derivation
II and Colloquium on Functional and Logic Programming and Specifications (CFLP) on TAPSOFT '87: Advanced Seminar on Foundations of Innovative Software Development
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Breadth-first numbering: lessons from a small exercise in algorithm design
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Type-Based Useless-Variable Elimination
Higher-Order and Symbolic Computation
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Using Circular Programs to Deforest in Accumulating Parameters
Higher-Order and Symbolic Computation
Generating Software from Specifications
Generating Software from Specifications
Tools and libraries to model and manipulate circular programs
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A shortcut fusion rule for circular program calculation
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
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
Hi-index | 0.00 |
Circular functional programs (necessarily evaluated lazily) have been used as algorithmic tools, as attribute grammar implementations, and as target for program transformation techniques. Classically, Richard Bird [1984] showed how to transform certain multitraversal programs (which could be evaluated strictly or lazily) into one-traversal ones using circular bindings. Can we go the other way, even for programs that are not in the image of his technique? That is the question we pursue in this paper. We develop an approach that on the one hand lets us deal with typical examples corresponding to attribute grammars, but on the other hand also helps to derive new algorithms for problems not previously in reach.