Cyclic reference counting for combinator machines
Proc. of a conference on Functional programming languages and computer architecture
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Tabulation Techniques for Recursive Programs
ACM Computing Surveys (CSUR)
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
AMAST '97 Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology
Universal coalgebra: a theory of systems
Universal coalgebra: a theory of systems
V→M: a virtual machine for strict evaluation of (co) recursive functions
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
Functional programming is very powerful when applied to tree-shaped data. Real-world software problems often involve circular graph-shaped data. In this paper, we characterize a class of functions on circular data graphs extending the class of primitively corecursive functions. We propose an abstract, effective implementation technique for these functions under an eager evaluation strategy on standard stack machines. The proposed implementation ensures termination and can be tuned either for exactness or for speed. The latter variant is asymptotically as efficient as standard implementations of algebraic recursion, at the price of suboptimal homomorphic result graphs with decently bounded redundancy.