A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
Mixin Modules in a Call-by-Value Setting
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Deterministic, Error-Correcting Combinator Parsers
Advanced Functional Programming, Second International School-Tutorial Text
Compiling a functional language
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Compilation of extended recursion in call-by-value functional languages
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A type system for well-founded recursion
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Establishing object invariants with delayed types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Applicative programming with effects
Journal of Functional Programming
Initializing Mutually Referential Abstract Objects: The Value Recursion Challenge
Electronic Notes in Theoretical Computer Science (ENTCS)
Compilation of extended recursion in call-by-value functional languages
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
Call-by-value languages commonly restrict recursive definitions by only allowing functions and syntactically explicit values in the right-hand sides. As a consequence, some very appealing programming patterns that work well in lazy functional languages are hard to apply in a call-by-value setting, even though they might not be using laziness for any other purpose than to enable the desired form of recursion. In this paper we present an operational semantics as well as a straightforward implementation technique for unrestricted recursion under pure call-by-value. On that basis we are able to demonstrate that highly recursive programming idioms such as combinator-based parsing are indeed compatible with call-by-value evaluation.