An algorithm for optimal lambda calculus reduction
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The geometry of optimal lambda reduction
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
YALE: yet another lambda evaluator based on interaction nets
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Non-deterministic interaction nets
Non-deterministic interaction nets
Call-by-name and call-by-value as token-passing interaction nets
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Rule-Based Operational Semantics for an Imperative Language
Electronic Notes in Theoretical Computer Science (ENTCS)
Token-passing Nets for Functional Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
A Tool for Programming with Interaction Nets
Electronic Notes in Theoretical Computer Science (ENTCS)
Encoding strategies in the lambda calculus with interaction nets
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
Recently, encodings in interaction nets of the call-by-name and call-by-value strategies of the @l-calculus have been proposed. The purpose of these encodings was to bridge the gap between interaction nets and traditional abstract machines, which are both used to provide lower-level specifications of strategies of the @l-calculus, but in radically different ways. The strength of these encodings is their simplicity, which comes from the simple idea of introducing an explicit syntactic object to represent the flow of evaluation. In particular, no artifact to represent boxes is needed. However, these encodings purposefully follow as closely as possible the implemented strategies, call-by-name and call-by-value, hence do not benefit from the ability of interaction nets to easily represent sharing. The aim of this note is to show that sharing can indeed be achieved without adding any structure. We thus present the call-by-need strategy following the same philosophy, which is indeed not any more complicated than call-by-name. This continues the task of bridging the gap between interaction nets and abstract machines, thus pushing forward a more uniform framework for implementations of the @l-calculus.