Normalization and continuation-passing-style interpretation of simply-typed call-by-need λ-calculus with control - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Pré-Publication, Document De Travail Année : 2017

Normalization and continuation-passing-style interpretation of simply-typed call-by-need λ-calculus with control

Résumé

Ariola et al defined a call-by-need λ-calculus with control, together with a sequent calculus presentation of it. They mechanically derive from the sequent calculus presentation a continuation-passing-style transformation simulating the reduction. In this paper, we consider the simply-typed version of the calculus and prove its normalization by means of a realizability interpretation. This justifies a posteriori the design choice of the translation, and is to be contrasted with Okasaki et al. semantics which is not normalizing even in the simply-typed case. Besides, we also present a type system for the target language of the continuation-passing-style translation. Furthermore, the call-by-need calculus we present makes use of an explicit environment to lazily store and share computations. We rephrase the calculus (as well as the translation) to use De Bruijn levels as pointers to this shared environment. This has the twofold benefit of solving a problem of α-conversion in Ariola et al calculus and of unveiling an interesting bit of computational content (within the continuation-passing-style translation) related to environment extensions.
Fichier principal
Vignette du fichier
cbncps.pdf (997.95 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01570987 , version 1 (01-08-2017)

Identifiants

  • HAL Id : hal-01570987 , version 1

Citer

Hugo Herbelin, Étienne Miquey. Normalization and continuation-passing-style interpretation of simply-typed call-by-need λ-calculus with control. 2017. ⟨hal-01570987⟩
139 Consultations
81 Téléchargements

Partager

Gmail Facebook X LinkedIn More