Hostname: page-component-586b7cd67f-gb8f7 Total loading time: 0 Render date: 2024-11-28T21:47:55.826Z Has data issue: false hasContentIssue false

Call-by-need in token-passing nets

Published online by Cambridge University Press:  24 July 2006

F.-R. SINOT
Affiliation:
LIX, École Polytechnique, 91128 Palaiseau cedex, France Email: [email protected]

Abstract

Recently, encodings in interaction nets of the call-by-name and call-by-value strategies of the $\lambda$-calculus have been proposed. The purpose of these encodings is to bridge the gap between interaction nets and traditional abstract machines, which are both used to provide lower-level specifications of strategies of the $\lambda$-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 evaluation flow. Another benefit of this approach is that no artifact is needed to represent boxes. However, these encodings deliberately follow the implemented strategies (call-by-name and call-by-value) as closely as possible, and hence do not benefit from the ability of interaction nets to represent sharing easily. The aim of this paper is to show that better sharing (hence efficiency) can indeed be achieved without adding much structure. We thus present the call-by-need strategy following the same philosophy, which is, indeed, no more complicated than call-by-name. We also extend our approach to fully lazy reduction. 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 $\lambda$-calculus.

Type
Paper
Copyright
2006 Cambridge University Press

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)