Results 1 
3 of
3
Control Categories and Duality: on the Categorical Semantics of the LambdaMu Calculus
, 1999
"... this paper, we study the relationship between the callbyname and callbyvalue paradigms for Parigot's calculus. The calculus is an extension of the simplytyped lambda calculus with certain sequential control operators. We show that, in the presence of product and disjunction types, the callby ..."
Abstract

Cited by 84 (3 self)
 Add to MetaCart
this paper, we study the relationship between the callbyname and callbyvalue paradigms for Parigot's calculus. The calculus is an extension of the simplytyped lambda calculus with certain sequential control operators. We show that, in the presence of product and disjunction types, the callbyname and callbyvalue calculi are isomorphic to each other, in the sense that there exist syntactic translations between them that preserve the operational semantics and that are mutually inverse up to isomorphism of types. These translations take the form of a
Sound and Complete Axiomatisations of CallByValue Control Operators
 Math. Structures Comput. Sci
, 1994
"... ion. Let \Gamma; x : oe ` M : ø . [[x : oe:M ]] = : (oe * ø ) * 0: (x : oe:M ) = by CApp : (x:C ø (k : ø * 0:k M )) = : (x:C ø ([[M ]])) = j oe*ø (x:C([[M ]])) which is the required expression since x:C oe ([[M ]]) is the abstraction of [[M ]] wrt. x in V. Application. Let \Gamma ` M : oe * ø ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
ion. Let \Gamma; x : oe ` M : ø . [[x : oe:M ]] = : (oe * ø ) * 0: (x : oe:M ) = by CApp : (x:C ø (k : ø * 0:k M )) = : (x:C ø ([[M ]])) = j oe*ø (x:C([[M ]])) which is the required expression since x:C oe ([[M ]]) is the abstraction of [[M ]] wrt. x in V. Application. Let \Gamma ` M : oe * ø and \Gamma ` N : oe. [[M N ]] = by definition of [[:]] : ø * 0: (M N ) = by App : ((m:m N ) M ) = by Conv :(m: (m N )) M = by BetaV :(k:k M ) (m: (m N )) = by Ass :(k:k M ) (m:(n:( (m n))) N ) = by BetaV :(k:k M ) (m:(l:l N ) (n:( (m n)))) = by definition of app. app([[M ]]; [[N ]]) Complete axiomatisations of control operators 17 A operator. Let \Gamma ` M : 0. [[A oe (M )]] = by definition : oe * 0: (A oe (M )) = by AAbs :A 0 (M ) = by A 0 Id :M = by Ident :(x : 0:x) M = by BetaV :(k:k M )(x : 0:x) = A oe ([[M ]]) C operator. If \Gamma ` M : (oe * 0) * 0 then [[C oe (M )]] = : oe * 0: C(M ) = by CNat :C 0 (k : 0 * 0:M (x : oe:k ( x))) = by 0Endo and Ident :C 0...