Chapter

Trends in Functional Programming

Volume 6546 of the series Lecture Notes in Computer Science pp 1-15

Evaluating Call-by-Need on the Control Stack

  • Stephen ChangAffiliated withLancaster UniversityPLT & PRL, Northeastern University
  • , David Van HornAffiliated withLancaster UniversityPLT & PRL, Northeastern University
  • , Matthias FelleisenAffiliated withLancaster UniversityPLT & PRL, Northeastern University

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Ariola and Felleisen’s call-by-need λ-calculus replaces a variable occurrence with its value at the last possible moment. To support this gradual notion of substitution, function applications—once established—are never discharged. In this paper we show how to translate this notion of reduction into an abstract machine that resolves variable references via the control stack. In particular, the machine uses the static address of a variable occurrence to extract its current value from the dynamic control stack.