Skip to main content

Integrating strict and lazy evaluation: the λsl-calculus

  • Functional Programming
  • Conference paper
  • First Online:
Programming Language Implementation and Logic Programming (PLILP 1990)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 456))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S.Abramsky. The lazy λ-calculus. Declarative Programming, D.Turner ed. Addison Wesley. 1989.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. A.Asperti, G.Longo. Categories, Types and Structures. An introduction to category theory for the working computer scientist. M.I.T. Press. 1990.

    Google Scholar 

  4. L.Cardelli. The Amber Machine. In Combinators and Functional Programming Languages. G.Cousineau, P.L.Curien, B.Robinet eds. LNCS 242. 1986.

    Google Scholar 

  5. G.Cousineau, P.L.Curien, M.Mauny. The Categorical Abstract Machine. Science of Computer Programming 8. 1987.

    Google Scholar 

  6. P.L.Curien. Categorical Combinators, Sequential Algorithms and Functional Programming. Pitman. 1986.

    Google Scholar 

  7. P.L.Curien. The λρ-calculus: an Abstract Framework for Environment Machines. Rapport de Recherche du LIENS 88-10. 1988.

    Google Scholar 

  8. N.G.De Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation. Indag. Math. 34. 1972.

    Google Scholar 

  9. J.Fairbairn, S. Wray. A simple, Lazy, Abstract Machine to execute supercombinators. LNCS.

    Google Scholar 

  10. J.Y.Girard. Linear Logic. Theoretical Computer Science, 50, 1987.

    Google Scholar 

  11. S. Hayashi. Adjunctions of Semifunctors: Categorical Structures in Nonextensional Lambda Calculus. Theoretical Computer Science 41. 1985.

    Google Scholar 

  12. M.Mauny. Compilation des Langages Foncionnels dans le Combinateurs Categoriques; Application au Langage ML. Thèse de Troisième Cycle, Université Paris VII. 1985.

    Google Scholar 

  13. G.Plotkin. Call-by-name, Call-by-value and the λ-calculus. Theoretical Computer Science 1. 1975.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pierre Deransart Jan Maluszyński

Rights and permissions

Reprints 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

Publish with us

Policies and ethics