Higher-Order and Symbolic Computation

, Volume 20, Issue 3, pp 237–255

The next 700 Krivine machines


DOI: 10.1007/s10990-007-9016-y

Cite this article as:
Douence, R. & Fradet, P. Higher-Order Symb Comput (2007) 20: 237. doi:10.1007/s10990-007-9016-y


The Krivine machine is a simple and natural implementation of the normal weak-head reduction strategy for pure λ-terms. While its original description has remained unpublished, this machine has served as a basis for many variants, extensions and theoretical studies. In this paper, we present the Krivine machine and some well-known variants in a common framework. Our framework consists of a hierarchy of intermediate languages that are subsets of the λ-calculus. The whole implementation process (compiler + abstract machine) is described via a sequence of transformations all of which express an implementation choice. We characterize the essence of the Krivine machine and locate it in the design space of functional language implementations. We show that, even within the particular class of Krivine machines, hundreds of variants can be designed.


Krivine machine Abstract machines Program transformation Compilation Functional language implementations 

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  1. 1.École Des Mines De NantesNantes Cedex 3France
  2. 2.Inria Rhône-AlpesMontbonnotFrance

Personalised recommendations