Results 1 -
3 of
3
Control Categories and Duality: on the Categorical Semantics of the Lambda-Mu Calculus
, 1999
"... this paper, we study the relationship between the call-by-name and call-by-value paradigms for Parigot's -calculus. The -calculus is an extension of the simply-typed lambda calculus with certain sequential control operators. We show that, in the presence of product and disjunction types, the call-by ..."
Abstract
-
Cited by 74 (3 self)
- Add to MetaCart
this paper, we study the relationship between the call-by-name and call-by-value paradigms for Parigot's -calculus. The -calculus is an extension of the simply-typed lambda calculus with certain sequential control operators. We show that, in the presence of product and disjunction types, the call-by-name and call-by-value -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 Call-By-Value Control Operators
- Math. Structures Comput. Sci
, 1994
"... ion. Let \Gamma; x : oe ` M : ø . [[x : oe:M ]] = : (oe * ø ) * 0: (x : oe:M ) = by C-App : (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 17 (1 self)
- Add to MetaCart
ion. Let \Gamma; x : oe ` M : ø . [[x : oe:M ]] = : (oe * ø ) * 0: (x : oe:M ) = by C-App : (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 Beta-V :(k:k M ) (m: (m N )) = by Ass :(k:k M ) (m:(n:( (m n))) N ) = by Beta-V :(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 A-Abs :A 0 (M ) = by A 0 -Id :M = by Ident :(x : 0:x) M = by Beta-V :(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 C-Nat :C 0 (k : 0 * 0:M (x : oe:k ( x))) = by 0-Endo and Ident :C 0...

