| R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In ACM Symp. on Principles of Programming Languages, 1993. 37 |
....Reg(#) Weaken) c M : A e Figure 1: A type and e#ect system (call cc) c call cc : ##.##.##. # ##e # Figure 2: Type and e#ect rule for call cc and Here A and B can be any types; note in particular that A may contain # free. As shown by Harper and Lillibridge [13, 14], adding the operator call cc to the polymorphic # calculus makes the type system unsound, unless the rules for polymorphism are restricted; the value restriction, as found in Standard ML [20] avoids this unsoundness. We restrict the rules dealing with polymorphism in Figure 1 to apply only to ....
....N) A Alternatively, suppose we # abstract the e#ectful expression: c #z. call cc(#k.#x.k(#y.x) B The region # can then be bound in the function type: c #z. call cc(#k.#x.k(#y.x) Remark 2.3 The expression in Example 2. 2 was used by Harper and Lillibridge [13, 14] to show the unsoundness of unrestricted in the presence of call cc. Specifically, the type A could have been a fresh type variable #: c call cc(#k.#x.k(#y.x) # # # However, in our type and e#ect system as defined in Figure 1, we could not #, that is, c call cc(#k.#x.k(#y.x) ....
[Article contains additional citation context not shown here]
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Principles of Programming Languages (POPL '93), pages 206--219. ACM, 1993.
....need no such a state to indicate dynamic argument status. In spite of the importance of the push enter model as a class of compilation methods for higherorder functions, any type system for the model has never been developed. The type systems for the eval apply model, e.g. one for CPS conversion [5], cannot specify the dynamic property of the push enter model because the eval apply model has a di erent property in argument passing. In this situation, all typed compilation approaches concerning higher order functions, which are an indispensable feature of modern programming languages, are ....
Robert Harper and Mark Lillibridge. Explicit Polymorphism and CPS Conversion. In The Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 206-219, Charleston, South Carolina, January 1993.
....F F V: Vo.A c V: A[o B] Weaken) F c : A Fh .A Figure 1: A type and effect system (ca11 cc) Figure 2: Type and effect rule for call cc and r k caii cc: A B) Z A) A Here A and B can be any types; note in particular that A may contain p free. As shown by Harper and Lillibridge [13, 14], adding the operator call cc to the polymorphic A calculus makes the type system unsound, unless the rules for polymorphism are restricted; the value restriction, as found in Standard ML [20] avoids this unsoundness. We restrict the rules dealing with polymorphism in Figure I to apply only to ....
....A O Alternatively, suppose we i abstract the effectful expression: iz. ca11 cc(ik.iz.k(iy.z) B (A A) The region p can then be bound in the function type: iz. ca11 cc(ik.iz.k(iy.z) Vp.B (A A) Remark 2.8 The expression in Example 2. 2 was used by Harper and Lillibridge [13, 14] to show the unsoundness of urestricted V introduction in the presence of ca11 cc. Specifically, the type A could have been a fresh type vari able o: ca cc(Ak. Ax.k(Ay.x) p However, in our type and effect system as defined in Figure 1, we could not V quantify o, that is, ca cc(Ak. ....
[Article contains additional citation context not shown here]
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Principles of Programming Languages (POPL '95), pages 206 219. ACM, 1993.
....those of the target, except that instead of continuations there are functions. Function types are labeled with their latent e#ect, a lower bound on the security level of memory locations that will be written to by that function. The type translation, following previous work on typed CPS conversion [15], is given in terms of three mutually recursive functions: # , for base types, for security types, and ( to linear continuation types: int # = int (s ref) # = s ref (s 1 s 2 ) # = #] s 1 , s 2 ) t # = t # ) # s = s , 1) Figure 6 shows the term translation ....
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Proc. 20th ACM Symp. on Principles of Programming Languages (POPL), 1993.
....fact is folk lore, and the author does not claim originality for noticing it. It is brie y mentioned in several discussions of imperative languages with polymorphic type systems [7, 2] This fact is also apparent in Harper and Lillibridge s recent work on CPS conversion for polymorphic languages [9, 10], which shows that an ML like language (i.e. one with call by value and polymorphism by value) does not admit any type preserving CPS transform, in contrast to languages with call by name or polymorphism by name. The rst aim of the present paper is to formally state this folklore result, by ....
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In 20th symposium Principles of Programming Languages. ACM Press, 1993.
....classical logic and showed that both Felleisen s CPS translation and its callby name version correspond to well known embeddings of classical logic into intuitionistic logic. Subsequently, typed CPS translations and correctness results have been given for more powerful typed calculi, see, e.g. [27, 28, 8], and applied to the compilation and optimization of typed languages, see, e.g. 19, 44] Grin s discovery initiated a series of studies on the computational content of classical proofs where CPS translations are a frequently employed tool, see, e.g. 13, 33, 38, 39, 34, 12, 4, 42, 24, 25, 35, ....
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Conf. Record of 20th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL'93, pp. 206-219. ACM Press, 1993.
....those of the target, except that instead of continuations there are functions. Function types are labeled with their latent e#ect, a lower bound on the security level of memory locations that will be written to by that function. The type translation, following previous work on typed CPS conversion [19], is given in terms of three mutually recursive functions: # , for base types, for security types, and ( to linear continuation types: int # = int (s ref) # = s ref (s 1 # # s 2 ) # = #] s 1 , s 2 ) # 0 t # = t # ) # s = s # 0 Figure 11 shows the ....
Harper, R. and M. Lillibridge: 1993, `Explicit Polymorphism and CPS Conversion '. In: Proc. 20th ACM Symp. on Principles of Programming Languages (POPL). pp. 206--219.
....l) h] x) jg ff it turns out that the type of should be : hDi where D is the type of ff: x: ff : x. Our solution to this problem, following Coquand and Herbelin [8] is to define the CPS translation of a term relative to the context in which the terms is considered. Another possibility [14] is to define the translation relative to derivations. These issues are discussed further in [4] However, even in a fixed context, the type of a term is unique only up to fi equality. This ambiguity is resolved by choosing types in normal form; this is possible since we are dealing with systems ....
....The expressions D, E, and F which occur in the clauses for, e.g. x: A : B are not necessarily smaller than x: A : B, but this does not matter since h Deltai s , not [ Delta] s Gamma , is applied to D, E, and F . The idea of using two distinct translations in this way also appears in [8] and [14]. 4.3. Embedding of terms Now we show that, if M 2 Term s Gamma , then [M ] s Gamma 2 Term s Delta s ;h[ Gamma]i s ; Delta s (M) First a lemma. 4.12. Lemma. Let S be weakly normalizing, generalized non dependent, and clean, s 2 S negatable. Let Gamma Delta both be legal, M 2 ....
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Conference Record of the Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 206--219. ACM Press, 1993.
....take the type of a term into account when transforming the term. 9 The conventional solution is to dene the CPS translation by induction over the structure (or over the height) of derivations Gamma M : A. For example, this is the approach taken by Harper and Lillibridge when CPS translating [34]. With such denitions, one generally desires a coherence property: given two dioeerent derivations D 1 and D 2 of Gamma M : oe, the translations hD 1 i and hD 2 i are equivalent in some sense. Reasonable notions of equivalence include syntactic identity as well as weaker notions such as ....
....of the translation itself involves convertability and substitution. Thus, one cannot proceed by rst addressing coherence and then proceeding to substitution, and conversion, etc. one is forced to tackle the associated properties simultaneously. As a point of comparison, Harper and Lillibridge [34] avoid both the problems associated with the conversion and application rules. When translating two dioeerent derivations D 1 and D 2 of the same judgment Gamma M : oe, use of the conversion rule in either D 1 or D 2 may cause the terms hD 1 i and hD 2 i to have dioeerent domain tags on ....
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Conference Record of the Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages
....classical logic and showed that both Felleisen s CPS translation and its callby name version correspond to well known embeddings of classical logic into intuitionistic logic. Subsequently, typed CPS translations and correctness results have been given for more powerful typed calculi, see, e.g. [27, 28, 8], and applied to the compilation and optimization of typed languages, see, e.g. 19, 44] Grin s discovery initiated a series of studies on the computational content of classical proofs where CPS translations are a frequently employed tool, see, e.g. 13, 33, 38, 39, 34, 12, 4, 42, 24, 25, 35, ....
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Conf. Record of 20th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL'93, pp. 206-219. ACM Press, 1993.
.... initiated by Meyer and Wand for a call by value interpretation of the simply typed calculus [7] Subsequently, Harper and Lillibridge studied the typing properties of several CPS transforms in a language that extends F [3] with some control constructs, where explicit polymorphism is supported [5]. The CPS transform presented in this paper is most closely related to the ML CBV CPS transform in [5] However, what is important in our case is probably not the CPS transform itself. Instead, we are interested in lifting the CPS transform from the level of expressions to the level of type ....
.... Harper and Lillibridge studied the typing properties of several CPS transforms in a language that extends F [3] with some control constructs, where explicit polymorphism is supported [5] The CPS transform presented in this paper is most closely related to the ML CBV CPS transform in [5]. However, what is important in our case is probably not the CPS transform itself. Instead, we are interested in lifting the CPS transform from the level of expressions to the level of type derivations, preparing for building a type preserving compiler for Dependent ML. People are interested in ....
Robert W. Harper and Mark Lillibridge. Explicit polymorphism and cps conversion. In Conference Record of the Twentieth Annual ACM SIGPLAN Symposium on Principles of Programming Languages, pages 206-219, 1993.
....of the target, except that instead of continuations there are functions. Function types are labeled with their latent e#ect, a lower bound on the security level of memory locations that will be written to by that function. The type translation, following previous work on typed CPS conversion [15], is given in terms of three mutually recursive functions: # , for base types, for security types, and ( to linear continuation types: int # = int (s ref) # = s ref (s 1 # # s 2 ) # = #] s 1 , s 2 ) # 0 t # = t # ) # s = s , 1) # 0 Figure 6 shows ....
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Proc. 20th ACM Symp. on Principles of Programming Languages (POPL), 1993.
....; e0 = j 2 ; r;m j 0 ; e r = 2 ; fm = e1g; r;m m 2 dom( Fig. 4. Evaluation Rules for Instrumented Semantics I (strict state, run) may evaluate under but the monadic interpreter never evaluates under which avoids known problems with the combination of polymorphism and e ects (Harper Lillibridge, 1993). The following are basic properties of the instrumented semantics. Proposition 5.4 Monadic Encapsulation of E ects 17 Pure and Monadic Run Time Errors The rules for error propagation follow the ML convention, those for error generation are: j ; e1 = 0 j 0 ; v j ; e1 e2 = err ....
Harper, Robert, & Lillibridge, Mark. (1993). Explicit polymorphism and CPS conversion.
No context found.
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In ACM Symp. on Principles of Programming Languages, 1993. 37
No context found.
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Conference Record of the 20th Annual ACM Symposium on Principles of Programming Languages, Jan. 1993.
No context found.
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, SC, January 1993. ACM, ACM.
....so that types are available for analysis by polymorphic code. This required the development of type preserving compilation techniques that translate both the code and its type in such a way that the typing relation is preserved. Work in this direction was initiated by Harper and Lillibridge [4, 5], and continued with the development of typed closure conversion [11, 16] and type based approaches to garbage collection [14, 15] Much of Morrisett s dissertation [13] is devoted to developing these ideas. Apart from supporting intensional type analysis, typepreserving translations make it ....
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, SC, January 1993. ACM, ACM.
....therefore the system supports higher order modules and some object oriented This work was sponsored by the Advanced Research Projects Agency, CSTO, under the title The Fox Project: Advanced Development of Systems Software , ARPA Order No. 8313, issued by ESD AVS under Contract No. F19628 91 C 0168. IElectronic mail address: rhcs. cmu. edu. Electronic mall address: mdlcs. cmu. edu. Perm ss;on to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage. the ACM copyright notice end the title of the ....
....is derivable from dependent functions and translucent sums. The basic idea is to transform Ac: K. M into hx: b cz: K . x.b ce]M where x is not free in M and M [A] into M b cz=A . Note that this implements constructor abstraction as a delaying operationunllke the normal SML semantics. See [16] for a discussion of the differences between these two interpretations of constructor abstractions and why this choice seems to be preferable. 126 have placed field names in bold in order to help emphasize that they are names, not variables. The complete typing rules appear in appendix A. Our ....
[Article contains additional citation context not shown here]
Robert Harper and Mark Lillibridge. Explicit polymor- phism and CPS conversion. In Twentieth ACM Symposium on Principles o.f Programming Languages, pages 206-219, Charleston, SC, January 1993. ACM, ACM.
....is derivable from dependent functions and translucent sums. The basic idea is to transform ##: K. M into #x: b ##: K . x.b #]M where x is not free in M and M [A]into M ##=A . Note that this implements constructor abstraction as a delaying operation unlike the normal SML semantics. See [16] for a discussion of the di#erences between these two interpretations of constructor abstractions and why this choice seems to be preferable. have placed field names in bold in order to help emphasize that they are names, not variables. The complete typing rules appear in appendix A. Our ....
....to be removed. Unsoundness example: M.y.2) M.y.1) where M is the example in section 4.6. 4 Selected Examples 4. 1 Simple structures Typical SML structures can be translated straightforwardly into our system, with the only complication being the treatment of polymorphism (as discussed in [16]. Consider the following structure S considered in the introduction: type t = int type u = t t val f = fn x:t = x This translates as: S = # t=Int, u # u=t#t, f # f=#x:t. x The translations of the signatures considered earlier (only SIG here is actually a valid SML signature) are: ....
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, SC, January 1993. ACM, ACM.
....usual call by value semantics. This suggests that a language in which polymorphic generalization and instantiation are semantically significant would be a well behaved alternative to ML style implicit polymorphism. This perspective has been explored in some detail in subsequent work of the authors [11]. 6. Acknowledgments We are grateful to Olivier Danvy, Bruce Duba, Tim Gri#n, Mark Leone, and the anonymous referees for their helpful comments and suggestions. ....
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, SC, January 1993. ACM, ACM.
No context found.
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, Jan. 1993.
No context found.
Harper, R. and Lillibridge, M. 1993. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages. ACM Press, Charleston, 206-219.
No context found.
Harper, R. and Lillibridge, M. 1993. Explicit polymorphism and CPS conversion. In 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press, New York, NY, USA, 206--219.
No context found.
R. Harper and M. Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, Jan. 1993.
No context found.
Robert Harper and Mark Lillibridge. Explicit polymorphism and CPS conversion. In Twentieth ACM Symposium on Principles of Programming Languages, pages 206--219, Charleston, January 1993.
First 50 documents Next 50
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