Call-by-name, Call-by-value, Call-by-need, and the Linear Lambda Calculus

John Maraist, Martin Odersky, David N. Turner, Philip Wadler

Research output: Contribution to journalArticlepeer-review

Abstract

Girard described two translations of intuitionistic logic into linear logic, one where A -> B maps to (!A) -o B, and another where it maps to !(A -o B). We detail the action of these translations on terms, and show that the first corresponds to a call-by-name calculus, while the second corresponds to call-by-value. We further show that if the target of the translation is taken to be an affine calculus, where ! controls contraction but weakening is allowed everywhere, then the second translation corresponds to a call-by-need calculus, as recently defined by Ariola, Felleisen, Maraist, Odersky and Wadler. Thus the different calling mechanisms can be explained in terms of logical translations, bringing them into the scope of the Curry-Howard isomorphism.

Original languageEnglish
Pages (from-to)370-392
Number of pages23
JournalElectronic Notes in Theoretical Computer Science
Volume1
DOIs
Publication statusPublished - 1995

Fingerprint

Dive into the research topics of 'Call-by-name, Call-by-value, Call-by-need, and the Linear Lambda Calculus'. Together they form a unique fingerprint.

Cite this