Skip to main content
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 1
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Sabel, David and Schmidt-Schauss, Manfred 2012. 2012 27th Annual IEEE Symposium on Logic in Computer Science. p. 561.


Small-step and big-step semantics for call-by-need

  • DOI:
  • Published online: 07 September 2009

We present natural semantics for acyclic as well as cyclic call-by-need lambda calculi, which are proved equivalent to the reduction semantics given by Ariola and Felleisen (J. Funct. Program., vol. 7, no. 3, 1997). The natural semantics are big-step and use global heaps, where evaluation is suspended and memorized. The reduction semantics are small-step, and evaluation is suspended and memorized locally in let-bindings. Thus two styles of formalization describe the call-by-need strategy from different angles. The natural semantics for the acyclic calculus is revised from the previous presentation by Maraist et al. (J. Funct. Program., vol. 8, no. 3, 1998), and its adequacy is ascribed to its correspondence with the reduction semantics, which has been proved equivalent to call-by-name by Ariola and Felleisen. The natural semantics for the cyclic calculus is inspired by that of Launchbury (1993) and Sestoft (1997), and we state its adequacy using a denotational semantics in the style of Launchbury; adequacy of the reduction semantics for the cyclic calculus is in turn ascribed to its correspondence with the natural semantics.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

S. Abramsky & C.-H. L. Ong (1993) Full abstraction in the lazy lambda calculus, Inf. Comput., 105 (2): 159267.

Z. Ariola & M. Felleisen (1997) The call-by-need lambda calculus. J. Funct. Program., 7 (3): 265301.

Z. M. Ariola & S. Blom (1997) Cyclic lambda calculi. In Proc. Theoretical Aspects of Computer Software. M. Abadi and T. Ito (eds), Lecture Notes in Computer Science, vol. 1281. Springer, Berlin/Heidelberg, pp. 77106.

J. Launchbury (1993) A natural semantics for lazy evaluation. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on the Principles of Programming Languages, Charleston, SC, USA.

J. Maraist , M. Odersky & P. Wadler (1998) A call-by-need lambda calculus, J. Funct. Program., 8 (3): 275317.

C. Okasaki , P. Lee & D. Tarditi (1994) Call-by-need and continuation-passing style, LISP Symbol. Comput., 7 (1): 5782.

G. Plotkin (1975) Call-by-name, Call-by-value and the λ-Calculus, Theoret. Comp. Sci., 1 (2): 125159.

P. Sestoft (1997) Deriving a lazy abstract machine, J. Funct. Program., 7 (3): 231264.

D. Syme (2005) Initializing mutually referential abstract objects: The value recursion challenge. In Proceedings of the Workshop on ML, Electr. Notes Theor. Comput. Sci., Tallinn, Estonia, 148 (2): 325.

A. K. Wright & M. Felleisen (1994) A syntactic approach to type soundness. Information and Computation, 115 (1): 3894.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *