Abstract
The usual way for integrating strict and lazy evaluation in functional programming is the introduction of an explicit “freeze” instruction in a call-by-value framework. We propose and discuss an alternative formal solution, based on the existence of two different sorts of variables: the strict and the lazy ones. The λsl-calculus is the pure theory underlying this approach. An abstract environment machine for this calculus, that is essentially a variation on the theme of the Categorical Abstract Machine, is defined, and its correctness is proved.
Preview
Unable to display preview. Download preview PDF.
References
S.Abramsky. The lazy λ-calculus. Declarative Programming, D.Turner ed. Addison Wesley. 1989.
M.Abadi, L.Cardelli, P.L.Curien, J.J.Levy. Explicit Substitutions. Proc. of the Conference on Principles of Programming Languages (POPL90). San Francisco. 1990.
A.Asperti, G.Longo. Categories, Types and Structures. An introduction to category theory for the working computer scientist. M.I.T. Press. 1990.
L.Cardelli. The Amber Machine. In Combinators and Functional Programming Languages. G.Cousineau, P.L.Curien, B.Robinet eds. LNCS 242. 1986.
G.Cousineau, P.L.Curien, M.Mauny. The Categorical Abstract Machine. Science of Computer Programming 8. 1987.
P.L.Curien. Categorical Combinators, Sequential Algorithms and Functional Programming. Pitman. 1986.
P.L.Curien. The λρ-calculus: an Abstract Framework for Environment Machines. Rapport de Recherche du LIENS 88-10. 1988.
N.G.De Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation. Indag. Math. 34. 1972.
J.Fairbairn, S. Wray. A simple, Lazy, Abstract Machine to execute supercombinators. LNCS.
J.Y.Girard. Linear Logic. Theoretical Computer Science, 50, 1987.
S. Hayashi. Adjunctions of Semifunctors: Categorical Structures in Nonextensional Lambda Calculus. Theoretical Computer Science 41. 1985.
M.Mauny. Compilation des Langages Foncionnels dans le Combinateurs Categoriques; Application au Langage ML. Thèse de Troisième Cycle, Université Paris VII. 1985.
G.Plotkin. Call-by-name, Call-by-value and the λ-calculus. Theoretical Computer Science 1. 1975.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Asperti, A. (1990). Integrating strict and lazy evaluation: the λsl-calculus. In: Deransart, P., Maluszyński, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1990. Lecture Notes in Computer Science, vol 456. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0024188
Download citation
DOI: https://doi.org/10.1007/BFb0024188
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53010-7
Online ISBN: 978-3-540-46298-9
eBook Packages: Springer Book Archive