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
Java Virtual Machine Specification
Java Virtual Machine Specification
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Stack inspection: Theory and variants
ACM Transactions on Programming Languages and Systems (TOPLAS)
DOOD '95 Proceedings of the Fourth International Conference on Deductive and Object-Oriented Databases
AMAST '97 Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology
Stacking cycles: functional transformation of circular data
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Hi-index | 0.00 |
Corecursive definitions are usually only meaningful in functional languages with lazy evaluation semantics, because their domain and range may contain cyclic data graphs. By inspection of the call stack, it is possible in a strict evaluation environment to detect cycles in a computation, and thus transform finite input graphs infinite time. This paper presents a virtual machine with suitable cycle handling primitives and operational semantics to implement strict evaluation of corecursive functions. We discuss the impact on calling conventions and definition constructs, and demonstrate the relevance of the introduced features by application to the domain of infinite precision decimal arithmetics.