Results 1 
5 of
5
CallbyName, CallbyValue, CallbyNeed, and the Linear Lambda Calculus
, 1994
"... 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 callbyname calculus, while the second correspond ..."
Abstract

Cited by 35 (6 self)
 Add to MetaCart
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 callbyname calculus, while the second corresponds to callbyvalue. 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 callbyneed 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 CurryHoward isomorphism.
Separating Weakening and Contraction in a Linear Lambda Calculus
 in: Proc. CATS'98, Computing: the Fourth Australian Theory Symposium (Perth
, 1996
"... . We present a separatedlinear lambda calculus of resource consumption based on a refinement of linear logic which allows separate control of weakening and contraction. The calculus satisfies subject reduction and confluence, and inherits previous results on the relationship of Girard's two tr ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
. We present a separatedlinear lambda calculus of resource consumption based on a refinement of linear logic which allows separate control of weakening and contraction. The calculus satisfies subject reduction and confluence, and inherits previous results on the relationship of Girard's two translations from minimal intuitionistic logic to linear logic with callbyname and callbyvalue. We construct a hybrid translation from Girard's two which is sound and complete for mapping types and reduction sequences from callbyneed into separatedlinear . This treatment of callbyneed is more satisfying than in previous work, allowing a contrasting of all three reduction strategies in the manner (for example) that the CPS translations allow for callbyname and callbyvalue. H OW can we explain the differences between parameterpassing styles? With the continuationpassing style (CPS) transforms [24, 25], one makes the flow of control explicit. Each parameterpassing style is associated ...
Reasoning about Selective Strictness  Operational Equivalence, Heaps and CallbyNeed Evaluation, New Inductive Principles
, 2009
"... Many predominantly lazy languages now incorporate strictness enforcing primitives, for example a strict let or sequential composition seq. Reasons for doing this include gains in time or space efficiencies, or control of parallel evaluation. This thesis studies how to prove equivalences between pro ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Many predominantly lazy languages now incorporate strictness enforcing primitives, for example a strict let or sequential composition seq. Reasons for doing this include gains in time or space efficiencies, or control of parallel evaluation. This thesis studies how to prove equivalences between programs in languages with selective strictness, specifically, we use a restricted core lazy functional language with a selective strictness operator seq whose operational semantics is a variant of one considered by van Eckelen and de Mol, which itself was derived from Launchbury’s natural semantics for lazy evaluation. The main research contributions are as follows: We establish some of the first ever equivalences between programs with selective strictness. We do this by manipulating operational semantics derivations, in
CallbyNeed Splits the Mode!
, 1993
"... We present a separatedlinear lambda calculus based on a refinement of linear logic which allows separate control of weakening and contraction. The calculus satisfies subject reduction and confluence, has a straightforward notion of standard evaluation, and inherits previous results on the relations ..."
Abstract
 Add to MetaCart
(Show Context)
We present a separatedlinear lambda calculus based on a refinement of linear logic which allows separate control of weakening and contraction. The calculus satisfies subject reduction and confluence, has a straightforward notion of standard evaluation, and inherits previous results on the relationship of Girard's two translations from minimal intuitionistic logic to linear logic with callbyname and callbyvalue. We construct a new translation, a hybrid of Girard's two, which is sound and complete for mapping types, reduction sequences and standard evaluation sequences from callbyneed into separatedlinear . This treatment of callbyneed is more satisfying than in previous work, allowing a contrasting of all three reduction strategies in the manner that (for example) the CPS translations allow for callbyname and callbyvalue. Introduction One fundamental application of the continuationpassing transformations is to explain the different parameterpassing mechanisms of callby...
Reasoning about Selective Strictness  Operational Equivalence, Heaps and CallbyNeed Evaluation, New Inductive Principles
, 2009
"... This thesis studies how to prove equivalences between programs in languages with selective strictness, specifically, we use a restricted core lazy functional language with a selective strictness operator seq. We establish some of the first ever equivalences between lazy programs with selective str ..."
Abstract
 Add to MetaCart
This thesis studies how to prove equivalences between programs in languages with selective strictness, specifically, we use a restricted core lazy functional language with a selective strictness operator seq. We establish some of the first ever equivalences between lazy programs with selective strictness by manipulating operational semantics derivations. Our operational semantics is similar to that used by van Eekelen and De Mol, though we introduce a ‘garbagecollecting’ rule for (let) which turns out to cause expressiveness restrictions. For example, arguably reasonable lazy programs such as let y = λz.z in λx.y do not reduce in our operational semantics. We prove some properties of seq, including associativity, idempotence, and leftcommutativity. The proofs use our three notions of program equivalence defined