Higher-Order and Symbolic Computation

, Volume 20, Issue 3, pp 257-270

First online:

Explaining the lazy Krivine machine using explicit substitution and addresses

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


In a previous paper, Benaissa, Lescanne, and Rose, have extended the weak lambda-calculus of explicit substitution λ σ w with addresses, so that it gives an account of the sharing implemented by lazy functional language interpreters. We show in this paper that their calculus, called λ σ w a , fits well to the lazy Krivine machine, which describes the core of a lazy (call-by-need) functional programming language implementation. The lazy Krivine machine implements term evaluation sharing, that is essential for efficiency of such languages. The originality of our proof is that it gives a very detailed account of the implemented strategy.


Abstract machine Call-by-need Functional programming Lazy evaluation