| D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990. |
....I . expression j abort expression j call cc expression j # expression Upsilon binary operator : j j j j = j j j j j = j = j and j or Upsilon unary operator : j not All control operators have been inspired from the work of Sitaram and are described in detail CONTROL in [Sita90]. A brief description is attempted here. An evaluation context can be understood as an expression with a hole in it; the value of the whole context depends on the value that is placed in the hole. At any time during the execution of a program, there is stack of evaluation contexts and an ....
....The auxiliary functions OE and ffi facilitate the management of function values. The semantics itself is not further discussed here, since it is only given as an example. The reader is referred to [Moss90] for an introduction to the denotational semantics of purely functional languages, and to [Sita90] for the semantics of control operators. 15.2 The functional programming paradigm Typed functional programming languages present many similarities with the meta languages that are THE DIRECT used in specifying denotational semantics. Functions, products and sums are directly supported in most ....
D. Sitaram and M. Felleisen, "Reasoning with Continuations II: Full Abstraction for Models of Control", in M. Wand, editor, Conference Record of the ACM Symposium on Lisp and Functional Programming, pp. 161--175, ACM Press, 1990.
.... ; 0) y encap (M (encap y) VPCF K (encap num M) n; if M c n VPCF S (encap num M) n; if (M; s (n; s that the semantics of encap num coincides with that of rstclass prompts [8] The semantics K[ corresponds directly to usual cps (continuation passing style) transforms [30, 39]. It is thus easy to check that if V is an adequate model for VPCF, then the semantics K[ is adequate for VPCF K. Since any fully abstract model is also adequate, we can apply Theorem 10 to the case of VPCF K, if the model V is fully abstract. Thus, to establish the correctness of encap for ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990.
....of exceptions has received less attention. An early example of a comparison of continuations and exceptions is Lillibridge [14] Contextual equivalence as a tool for comparing programming languages goes back at least to Landin [11] and was later formalized by Felleisen [4] Sitaram and Felleisen [18] used a contextual equivalence for showing the added power of control delimiters over call cc. The continuations folklore knows an implementation of exceptions in terms of continuations and references (see [16] hence there can be no equivalence broken by the former but not the latter, although ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: full abstraction for models of control. In M. Wand, editor, Lisp and Functional Programming. ACM, 1990.
....arises from a connection with the evaluation strategies for lambda calculi and other programming languages known to computer scientists under these names. For instance, the language PCF has been considered in three flavours: the original call by name version [Plo77] a call by value version [SF90], and a lazy version [BR89] Term models for these languages naturally give rise to call by name, call by value and lazy type structures respectively. The general form of call by name lambda calculi was more or less indicated in Example 1.4(ii) above. We will not explicitly define the ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Conference on Lisp and Functional Programming. ACM, 1990.
....functional continuations overcome some of the anomalies of callcc in the top level interactive loop, allow a cleaner style of programming than callcc, and increase the expressiveness of the language . Type systems for continuation based operations are not well understood. Sitaram and Felleisen [22] were the rst to give a limited type system for continuation based operations. They added callcc A preliminary version entitled A generalization of exceptions and control in ML like languages appeared in Proceedings of the 1995 Conference on Functional Programming and Computer Architecture, ....
....provides a way to translate complete programs in our language to SML programs. The module has three primitives new prompt, set and cupto that implement the constructs of the same name. The Appendix gives an implementation in SML NJ. It has the same avor as the untyped encoding of shift and reset [22] into Scheme with callcc, but it is not easy to relate them in a precise way, since the languages that they encode are also di erent. The time analysis of our implementation is important to consider. The analysis depends crucially upon the implementation of callcc. Assuming that the cost of ....
[Article contains additional citation context not shown here]
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161-175. ACM, 1990.
....present only closed outsides are of interest) An outside of type FA is called a consumer, because it waits for a producer to produce a value of type A. Roughly speaking, an outside consists of part of an operand stack (in the sense of Sect. 2.4) together with a consumer. Adapting the notation of [36], we represent the layers that we move through as contexts. Fix a type C; then the outsides are given by k nil : C x : A c M : B k K : B k [ to x in M : K : FA k K : B i 0 k i 0 [ K : Q i2I B i v V : A k K : B k V [ K : A B A terminal ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, ACM Press, June 1990.
....any addresses, that is Addr(P ) We also need a language with continuations and state: De nition 2. Let V cont state be the de ned by the operational semantics in Table 4. The small step operational semantics of V cont state with evaluation contexts is in the style of Felleisen [12], with store added. Both addresses a and rei ed continuations #E are run time entities that cannot appear in source programs. Let a context C be a term with a hole not containing addresses. De nition 3. Two terms P and P 0 are contextually equivalent, P P 0 , iff for all contexts C, we ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: full abstraction for models of control. In M. Wand, editor, Lisp and Functional Programming. ACM, 1990.
.... Pi encap (M (encap oe y) VPCF K (encap num M) n; if M ic n VPCF S (encap num M) n; if (M; is (n; s 0 ) that the semantics of encap num coincides with that of firstclass prompts [8] The semantics K[ Delta] corresponds directly to usual cps (continuation passing style) transforms [30, 39]. It is thus easy to check that if V is an adequate model for VPCF, then the semantics K[ Delta] is adequate for VPCF K. Since any fully abstract model is also adequate, we can apply Theorem 10 to the case of VPCF K, if the model V is fully abstract. Thus, to establish the correctness of encap ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....these languages can be built using partially ordered sets and 3 The word lazy here does not refer to lazy lists. This is somewhat confusing terminology, but it maintains a link with the earlier work of Abramsky [2, 3] and Ong [38, 39] 1.2. LAZY AND CALL BY VALUE LANGUAGES 9 function spaces [9, 11, 57, 58], although the meanings of functionally typed terms are not quite functions, since the operational semantics of lazy and call by value languages do not obey the extensionality property. Full definitions appear in Chapters 3 and 4. In contrast, logical principles differ greatly from the ....
....PCF out of lifted, strict continuous functions. Define V = N and V = V s;c V ] oe = f g, and d ffl v e = drop(d) e) The equations for interpreting call by value PCF terms in this frame may be found in Table 4.3. Theorem 4. 17 (Sieber [55] Sitaram Felleisen [58]) The model V is adequate and inequationally fully abstract for call by value PCF. 4.4. THEORY OF CALL BY VALUE PCF 63 V [ x oe ] ae = ae(x) V [ n] ae = n V [ x Pi M ] ae = lift(strict(g) where g(d) V [ M ] ae[x 7 d] V [ M N ] ae = V [ M ] ae) ffl v (V [ N ] ae) V [ x oe Pi M ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....present only closed outsides are of interest) An outside of type FA is called a consumer, because it waits for a producer to produce a value of type A. Roughly speaking, an outside consists of part of an operand stack (in the sense of Sect. 2.4) together with a consumer. Adapting the notation of [36], we represent the layers that we move through as contexts. Fix a type C; then the outsides are given by k nil : C x : A c M : B k K : B k [ to x in M : K : FA k K : B k [ K : Q i2I B i v V : A k K : B k V [ K : A B 5 In the CBN ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, ACM Press, June 1990.
....functional continuations overcome some of the anomalies of callcc in the top level interactive loop, allow a cleaner style of programming than callcc, and increase the expressiveness of the language. Type systems for continuation based operations are not well understood. Sitaram and Felleisen [22] were the first to give a limited type system for continuation based operations. They added callcc into PCF, a simply typed language with basic arithmetic, and used the typing rule A a : t nat) t (callcc) A (callcc a) t A preliminary version entitled A generalization of exceptions ....
....a 1 as x in a 2 ] cupto [ a 1 ] fn x = a 2 ] The other constructs of our language can be translated directly into SML NJ, e.g. and [ lx: a] fn x = a] The Appendix gives an implementation in SML NJ. It has the same flavor as the untyped encoding of shift and reset [22] into Scheme with callcc, but it is not easy to relate them in a precise way, since the languages that they encode are also different. The time analysis of our implementation is important to consider. The analysis depends crucially upon the implementation of callcc. Assuming that the cost of ....
[Article contains additional citation context not shown here]
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....arguments or results to each other, and yet they can communicate via an exception. This may be seen as a failure of modular reasoning. Sitaram and Felleisen used an equivalence similar to the one in Section 4 as an argument for the additional expressive power of the prompt , or control delimiter [20]. We can regard this as evidence of the essentially dynamic nature of the prompt; compare dynamic wind in Scheme [7] They gave an informal argument for the validity of this equivalence for continuations alone, but no hint of a formal proof. The results here leave open a few issues. First, are ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....C[ Delta] w Pi [ Delta] x Pi (if0 ( w) y Pi 2) y Pi 1) x Pi (w : 3) x) 4) ref 0) where (M ; N) is shorthand for ( x Pi N) M) with x not free in N , distinguishes the two terms: C[M1 ] returns 1 whereas C[M2 ] returns 2. Similarly, if we extend VPCF with a callcc operation (cf. [17] and Section 5 below) the terms M1 and M2 can be distinguished. The context C[ Delta] callcc (k Pi [ Delta] x Pi Omega Gamma (x Pi k 1) 2) adapted from [6] where Omega is a divergent term, forces C[M1 ] to converge with result 1 but C[M2 ] to diverge. If exceptions are added to the ....
....and abort operations to the language by adding Callcc M : oe num) oe (callcc M) oe Abort M : num (abort M) and the formation rules for # and defined in Section 3.3 to the rules of Table 1. We call the resultant language VPCF K. An operational semantics for VPCF K, following [17], appears in Table 6, where the evaluation contexts are defined by the grammar E : Delta] j (E M) j (V E) j (succ E) j (pred E) j (if0 E M N) j (Y E) j (abort E) j (# num E) j ( E M) j ( V E) and where each term to be evaluated begins with # num . The model CK built from the monad K of ....
[Article contains additional citation context not shown here]
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....in the top level interactive loop (see below) and the language is type safe, i.e. evaluation of programs cannot generate run time type errors. 1.1 Previous typings of continuations Assigning static types to continuation based operations has been a long standing problem. Sitaram and Felleisen [17] incorporate callcc into PCF, a simply typed language with basic arithmetic. They use the typing rule A a : nat) callcc) A (callcc a) where A specifies the types of free variables. The limitation is obvious: only a continuation whose result type is nat can be reified. In ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....to the languages callcc A and cps ( callcc A) and the translations C k and C Gamma1 ) 4.1.4 Prompts Both A and callcc allow unrestricted transfers of control. Denotational models for languages with such control operators naturally include elements that delimit control actions [80, 95]. In addition to their theoretical importance, these delimiters present a useful programming paradigm [93, 94] In this section, we study one traditional control delimiter: # (prompt) 24] Intuitively, in an expression (# M ) the prompt treats its subexpression as a complete program by ....
....respect to a notion of observational equivalence. In the remainder of this section, we restrict the type of answers a so that it coincides with the type o of observable objects. The set of source terms is an extension of the simply typed calculus with the control operators and their usual types [95]: V : j callcc ( s t) s) s j A o t j (# M o ) o Definition 4.5 (CPS t ) The full set of CPS terms is: P : x a j (K t a W t ) a j (K a a P a ) a W : x t j (k t a :K s a ) t a) s a K : k t a j (x t :P a ) t a j (W (t a) s a K t a ) s a As ....
[Article contains additional citation context not shown here]
Sitaram, D. and Felleisen, M. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the ACM Conference on Lisp and Functional Programming (1990) 161--175.
....arguments or results to each other, and yet they can communicate via an exception. This may be seen as a failure of modular reasoning. Sitaram and Felleisen used an equivalence similar to the one in Section 4 as an argument for the additional expressive power of the prompt , or control delimiter [21]. We can regard this as evidence of the essentially dynamic nature of the prompt; compare dynamic wind in Scheme [8] They gave an informal argument for the validity of this equivalence for continuations alone, but no hint of a formal proof. The results here leave open a few issues. First, are ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
.... for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [11, 12, 37] Recent studies of continuations have addressed the question of their typing in a restricted setting [13, 14, 16] and their impact on full abstraction results [32]. The subject of this paper is the extension of Standard ML with primitives for first class continuations similar to those found in Scheme. The two new primitives are callcc, for call with current continuation, which takes a function as argument and calls it with the current continuation, and ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 Conference on LISP and Functional Programming, pages 161--175, June 1990.
.... 1972; Felleisen et al. 1986) However, because CPS appears to constrain expressive power, Felleisen and others have successively proposed new control operators to compose continuations (Felleisen et al. 1987a) and to limit their extent (Felleisen, 1988) As later shown by Sitaram and Felleisen (Sitaram and Felleisen, 1990), inclusion of control delimiters is also necessary to obtain fully abstract models of control for CPS models with escape. The motivation for shift and reset was somewhat different: rather than devising new theories, new models, and new representations of control, we have set out to explore CPS ....
Sitaram, D. and Felleisen, M. (1990). Reasoning with continuations II: Full abstraction for models of control. In (LFP, 1990), pages 161--175.
.... for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [9, 10, 39] Recent studies of continuations have addressed the question of their typing in a restricted setting [13, 12, 15] and their impact on full abstraction results [34]. This research was supported in part by the Defense Advanced Research Projects Agency (DARPA) under ARPA order 6253. y This research was supported in part by the Defense Advanced Research Projects Agency (DARPA) monitored by the Office of Naval Research under Contract N00014 84 K 0415, ARPA ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 Conference on LISP and Functional Programming, pages 161--175, June 1990.
....properly wrapped with a functional interface, represent the partial continuation. The definitions below do not take efficiency into account but they try to suggest that there exist common patterns. 5 prompt, control Two control operators, prompt and control, were presented and discussed in [Fel88, FWFD88, SF90a, SF90b]. The prompt operator identifies contexts to be used by control. The control function reifies the context up to the nearest dynamically enclosing prompt, into a partial continuation and, at the same time, removes it from the current continuation. prompt is a syntax which expands into a call to ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations ii: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programmming, pages 161--175, Nice (France), June 1990. ACM Press.
....the evaluation context of the application and resumes the abstracted evaluation context with its argument. Names are used to identify (or delimit) continuations earmarked for discarding by abort. So the construct set ff A in Gamma is an operator that binds the name ff A . See [17] and [38] for similar formulations of first class continuation constructs. We can translate pcf v augmented by such constructs into pcf v as before by macro expanding the continuation constructs into pcf Gamma v terms. Define an encoding pcallcc sq def = ff A : ff] psq(x A : fi B : ff]x) ....
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. ACM Conference on Lisp and Functional Programming, pages 161-- 175, 1990.
....be helpful for seeing what is going on. 2.1. The language Up to minor variations, both the language and its semantics are taken off the shelf from the continuations literature: see the typing of callcc in Standard ML [5, 13] for the language and its type system, and work by Felleisen and others [6, 30] for the evaluation context operational semantics. 5 We recall the type system for continuations in ML [5] Gamma; x : x : Gamma; x : oe M : Gamma x:M : oe Gamma M : oe Gamma N : oe Gamma MN : Gamma M : Gamma callcc M : Gamma M : ....
....throwM N = k:M(m:N (n:mn) M;N) k:M(m:N (n:k(p:pmn) j M = k:M(m:m(x 1 x 2 :kx j ) The transform for pairs makes use of a classical encoding similar to Griffin s [10] 2.3. Felleisen style operational semantics We give an evaluation context semantics in the style developed by Felleisen [30, 6]. 6 Definition 2. Values V , evaluation contexts E and general terms M are given by the following BNFs: V : x j x:M j flx:M j (V; V ) E : j EM j V E j throwE M j throwV E j (E; M) j (V; E) j i E M : V j MM j j throwM M j callccM j (M; M) j i M A redex is of the following ....
[Article contains additional citation context not shown here]
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: full abstraction for models of control. In M. Wand, editor, Lisp and Functional Programming. ACM, 1990.
....some of the anomalies of callcc in the top level interactive loop, and allows a somewhat cleaner style of programming than callcc. The assignment of types for exceptions is generally well understood, but the assignment of types for continuationbased operations is not. Sitaram and Felleisen [24] were the first to give a limited type system for continuation based operations. They added callcc into PCF, a simply typed language with basic arithmetic, and used the typing rule A a : nat) callcc) A (callcc a) where A specifies the types of free variables. The limitation ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175. ACM, 1990.
....Language with Control, which for brevity we will call PFLC. The language features high order functions, recursion by means of a fix operator, advanced control constructs, such as abort, call=cc and a control delimiter, or prompt, written as #. All control features are described in detail in [Sita90]. The complexity of our example serves the purpose of using as many elements of the meta language as possible, in its semantic description. Figures 2 and 3 present the abstract syntax of PFLC, the syntactic and semantic domains and a subset of the semantic equations, using continuation semantics. ....
D. Sitaram and M. Felleisen, "Reasoning with Continuations II: Full Abstraction for Models of Control ", in M. Wand, editor, Conference Record of the ACM Symposium on Lisp and Functional Programming, pp. 161--175, ACM Press, 1990.
.... for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [11, 12, 37] Recent studies of continuations have addressed the question of their typing in a restricted setting [13, 14, 16] and their impact on full abstraction results [32]. The subject of this paper is the extension of Standard ML with primitives for first class continuations similar to those found in Scheme. The two new primitives are callcc, for call with current continuation, which takes a function as argument and calls it with the current continuation, and ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 Conference on LISP and Functional Programming, pages 161--175, June 1990.
.... Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [8, 9, 38] Recent studies have focused on questions of typing for first class continuations [12, 11, 14] and their impact on full abstraction results [32]. The subject of this paper is the extension of Standard ML with primitives for first class continuations similar to those found in Scheme. The two new primitives are callcc, for call with current continuation, which takes a function as argument, and calls it with the current continuation, and ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 Conference on LISP and Functional Programming, pages 161--175, June 1990.
....and by wrapping a reset around kx, we ensure that only the identity continuation gets discarded when k is invoked) Thus, we only need to define A and #. That K, A, and # together suffice for defining all pure CPS terms in a domain theoretic setting was already noted by Sitaram and Felleisen [27]) The second, key observation is that except for the definitions of A and # the meta continuation is threaded through the meta continuation semantics exactly like the global store in a Scheme like language This means that we we can simply designate a single, updatable location to hold fl ....
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 161--175, Nice, France, June 1990.
....fij (relative to the languages callcc A and cps ( callcc A) and the translations C k and C ) 4.1.4 Prompts Both A and callcc allow unrestricted transfers of control. Denotational models for languages with such control operators naturally include elements that delimit control actions [80, 95]. In addition to their theoretical importance, these delimiters present a useful programming paradigm [93, 94] In this section, we study one traditional control delimiter: # (prompt) 24] Intuitively, in an expression (# M ) the prompt treats its subexpression as a complete program by ....
....respect to a notion of observational equivalence. In the remainder of this section, we restrict the type of answers a so that it coincides with the type o of observable objects. The set of source terms is an extension of the simply typed calculus with the control operators and their usual types [95]: V : j callcc ( s t) s) s j A o t j (# M Definition 4.5 (CPS ) The full set of CPS terms is: P : x a a As before, the CPS transformation and its inverse preserve the types of terms. c , and P 2 CPS , then C k [ M ] 2 CPS c . As ....
[Article contains additional citation context not shown here]
Sitaram, D. and Felleisen, M. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the ACM Conference on Lisp and Functional Programming (1990) 161--175.
.... calculus is complete and canonical for reasoning about functional abstractions. We consider two aspects of the expressive power of CPS: the control operators that are definable within the CPS framework, and the equational axioms that govern the behavior of these operators. Sitaram and Felleisen [22] address the first aspect by analyzing CPS models. They establish that abort (A) call with current continuation (callcc) and control delimiters represent a complete set of control operators. Pragmatically, these control operators can concisely express a wide variety of control abstractions such ....
....( Then, 1. fi v j v A M = C Gamma1 [ C k [ M ] 2. fij P = C k [ C Gamma1 [ P ] 3. fi v j v A M = N iff fij C k [ M ] C k [ N ] 4. fij P = Q iff fi v j v A C Gamma1 [ P ] C Gamma1 [ Q] 3 The Control Extensions The analysis of mathematical CPS models [22] shows that these models can essentially express continuation capture (callcc) error exits (A) and control delimiters (#) The first subsection deals with the first two of these operators, which are more widely used and less problematic than control delimiters. The second subsection is an ....
[Article contains additional citation context not shown here]
Sitaram, D. and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 ACM Conference on Lisp and Functional Programming (1990), pp. 161--175.
.... with Continuations II: Full Abstraction for Models of Control Two Corrections Dorai Sitaram Matthias Felleisen Department of Computer Science Rice University Houston, TX 77251 1892 July 29, 1992 1 Environments for Pcf v The original paper [1] defines the domain of environments for call by value Pcf as typerespecting maps from the set of variables to domains (cf. 1, page 166] ae 2 Env implies ae(x t ) 2 D t : Kurt Sieber [Universit at des Saarlandes; personal communication: June 29, 1990] discovered that this definition is wrong ....
....every other environment. An alternative solution, employed by Riecke [2] is to change the language and to include a syntactic construct for declaring recursive objects: x:M: It is then possible to bind a diverging computation to a variable. 2 The CPS model for Pcf v C The original paper [1] assigns the following semantics to Y (cf. 1, page 170] fix cps : D ( s t) s t) s t) fix cps = f; F 1 i=0 fa i g where a 0 = f ; a 1 = f (n:fn) a 2 = f (n:fn(n:fn) Thomas Streicher [Universit at M unchen; personal communication: June 29, 1992] points out that the set fa i g ....
Sitaram, D. and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990, 161--175.
No context found.
Sitaram, D. and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990, 161--175.
.... (as opposed to the Scheme semantics [35] would have to include the interactive loop, which provides a delimiter for control actions [9] By including an appropriate version of this delimiter in PS(control) abort becomes macro expressible as a combination of call cc and the control delimiter [39]. Put differently, interactive programming systems actually add expressive power to the programming language. Peter Lee [personal communication] pointed out another example of this phenomenon: The addition of a read eval print loop also introduces true, non eliminable polymorphism into a language ....
....environments add power to their underlying languages suggests that they should be specified as a part of the language standards Proposition 4. 6 The control constructs abort and call cc cannot express each other: i) PS(abort) cannot macro express call cc with respect to PS(control) [39]. ii ) PS(call cc) cannot (macro ) express abort with respect to PS(control) Proof Sketch. i) The proof of the first claim shows that call cc destroys operational equivalences in PS(abort) A typical example is C(1) a C( Omega Gamma where C(ff) Bif (f (lambda (k) k 1) Omega Gamma36 ....
[Article contains additional citation context not shown here]
Sitaram, D. and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990, 161--175.
....divergent subcomputations are ignored by parallel and . Consequently, the conventional model for such functional languages fails to identify p i and p. Essentially the same example can be constructed in any practical deterministic programming language where procedures can be passed as parameters [13, 20]. For example, in call by value languages, the procedures p i can be rewritten so that the parameter f takes constant procedures as arguments and uses these procedures to simulate call by name boolean arguments [20] Indeed, all commonly used deterministic languages are sequential. In informal ....
.... programming language where procedures can be passed as parameters [13, 20] For example, in call by value languages, the procedures p i can be rewritten so that the parameter f takes constant procedures as arguments and uses these procedures to simulate call by name boolean arguments [20]. Indeed, all commonly used deterministic languages are sequential. In informal terms, a language is sequential if it can be implemented without timeslicing among multiple threads of control. Practical languages eschew parallel operations like parallel and because they are painful to implement ....
[Article contains additional citation context not shown here]
Sitaram, D. and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990, 161--175.
No context found.
D. Sitaram and M. Felleisen. Reasoning with continuations II: Full abstraction for models of control. In Proceedings of the 1990.
No context found.
Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: full abstraction for models of control. In M. Wand, editor, Lisp and Functional Programming. ACM, 1990.
No context found.
D. Sitaram and M. Felleisen. Reasoning with continuations II: full abstraction for models of control. In ACM Conference on Lisp and Functional Programming, 1990.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC