| Xavier Leroy. Polymorphic typing of an algorithmic language. Research report 1778, INRIA, 1992. |
....by Leroy and System Type of imp map Old Caml (int string) int list string list SML 90 ( SML=NJ ( E ects ( list list Closure ( M list N list with . N Value ( list list Figure 1: Comparing types Weis [10, 7], are able to extract this polymorphism, by tracking in more detail creation and access of references. They both give the same type to imp map and an applicative version of map, but this is at the price of adding information about the program execution ow. This means complex types, which may be ....
X. Leroy. Polymorphic typing of an algorithmic language. Research report 1778, INRIA, 1992.
....consequences in behavioural theories, most notably in the properties of the generic transition relation, as we shall discuss in Section 7. 3. 5 Extension (2) Sequential State The integration of imperative features and polymorphism in programming is an old and challenging technical problem [13, 22, 37]. Here we present a basic extension of ane polymorphic processes to stateful computation which is enough for our present purpose. Following [17] we add a constant called reference agent, written Refhxyi, to extend the class of behaviour. Accordingly we also introduce related constructs, branching ....
....clean typability of these examples come from the distinction between mutable replication and immutable one, as well as the unlimited assignment of universal types to the latter. The distinction is also accompanied by wide typability: as far as we checked, all benchmark programs in Leroy s thesis [22] conform to this form. By considering M to be a supertype of , this may lead to a new e ective type inference for ML like languages, though details are to be seen. Stateful polymorphism of another kind come from existentials, which are, in the present setting, the precise dual of universals. ....
Leroy, X. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris, 1992.
....consequences in behavioural theories, most notably in the properties of the generic transition relation, as we shall discuss in Section 7. 3. 5 Extension (2) Sequential State The integration of imperative features and polymorphism in programming is an old and challenging technical problem [13, 22, 37]. Here we present a basic exten sion of afiqne polymorphic processes to stateful computation which is enough for our present purpose. Following [17] we add a constant called reference agent, written Ref(xy) to extend the class of behaviour. Accordingly we also introduce related constructs, ....
....clean typability of these examples come from the distinction between mutable replication and immutable one, as well as the unlimited assignment of universal types to the latter. The distinction is also accompanied by wide typability: as far as we checked, all benchmark programs in Leroy s the sis [22] conform to this form. By considering to be a supertype of , this may lead to a new effective type inference for ML like languages, though details are to be seen. Stateful polymorphism of another kind come from existentials, which are, in the present setting, the precise dual of universals. It ....
LEROY, X. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris, 1992.
....of the central results. Theorem 1. strong normalisability) Let P .A in linear polymorphic typing. Then P is strongly normalising with respect to . 3. 5 Extension (2) State and Concurrency The integration of imperative features and polymorphism is an old and challenging technical problem [10, 16, 29]. Here we present a basic extension of ane polymorphic processes to stateful computation. Following [12] we add a constant process Refhxyi, called reference agent. For interacting with reference, we need selection xin i h zi which selects, in the case of reference, either read (i = 1) or write (i ....
....note the subject of a reference M typed replication is never universally abstracted, in accordance with restriction to simple types. In spite of this limitation, a wide variety of imperative polymorphic programs are typable via encoding: for example, all benchmark programs in Leroy s thesis [16] as well as Grossman s integrations of struct with existentials [10] are typable. This is due to the distinction between two replicated types, and M . For further discussions, see [6] For incorporating concurrency, we simply ignore all IO modes in each rule. Section 6 presents equational ....
Leroy, X. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris, 1992.
....devised a checking mechanism if the program has inconsistencies. Milner and Damas [Mil78] have proposed a Let polymorphic type system and an algorithm W[DM82] which ensures that if any program has passed the type checking, it does not go wrong during its execution. Later, Tofte[Tof88] and Leroy[Ler92] have extended the type system for the assignment. Another algorithm called M has been used among the language im7 plementers and Lee and Yi [LY98] have proved the correctness of the algorithm with respect to the type system. Effect describes the side effects that an expression may have ....
Xavier Leroy. Polymorphic Typing of an Algorithmic Language. PhD thesis, University Paris VII, October 1992.
....type expressions, and it is polymorphic, since it is possible to define functions that takes arguments of different types. Basic polymorphic type checking, which is known as Milner s polymorphic type discipline, is described in a number of papers, books and articles [Mil78, DM82, Car86, Joh93, Ler92, Jon87, Tof88] This discipline will be discussed in section 5.1. Standard ML also provides imperative features such as references to variables. To combine polymorphism with these imperative features is not an easy task [Tof88, Ler92] It is important though, to provide these features in a ....
....of papers, books and articles [Mil78, DM82, Car86, Joh93, Ler92, Jon87, Tof88] This discipline will be discussed in section 5.1. Standard ML also provides imperative features such as references to variables. To combine polymorphism with these imperative features is not an easy task [Tof88, Ler92] It is important though, to provide these features in a functional language since certain algorithms cannot be efficiently implemented otherwise. 5.1 The basic theory of type checking The ideas illustrated in this section are basically those described in [DM82] and [Car86] Readers who are ....
Xavier Leroy. Polymorphic Typing of an Algorithmic Language. PhD thesis, INRIA, October 1992.
....of Proposition 1 are given in Appendix B. The method used in the proof of consistency depends on the approach used in the specification of the dynamic and static semantics. Relative merits of different methods in proving the two semantics consistent have been discussed in the related literature [12, 31, 22, 25]. Our formulation can be likened to that of [25] in the sense that we use the formalism of relational semantics in specifying the evaluation rules and the static semantics rules involve effect inference. It can also be likened to that of [12] in the sense that the formalism of relational semantics ....
....been discussed in the related literature [12, 31, 22, 25] Our formulation can be likened to that of [25] in the sense that we use the formalism of relational semantics in specifying the evaluation rules and the static semantics rules involve effect inference. It can also be likened to that of [12] in the sense that the formalism of relational semantics is enriched by labelling evaluation rules with event sequences to capture the communication behaviour. 6 Mobility Analysis In the previous sections we defined the dynamic and static semantics and proved their consistency. In this section we ....
X. Leroy. Polymorphic Typing of an Algorithmic Language. PhD thesis, Univerity of Paris VII, 1992.
....Consistency of Dynamic and Static Semantics The method used in the proof of consistency depends on the approach used in the specification of the dynamic and static semantics. Relative merits of different methods in proving the two semantics consistent have been discussed in the related literature [23, 24, 25, 20]. Our formulation can be likened to that of [20] in the sense that we use the formalism of relational semantics in specifying the evaluation rules and the static semantics rules involve effect inference. It can also be likened to that of [23] in the sense that the formalism of relational semantics ....
....been discussed in the related literature [23, 24, 25, 20] Our formulation can be likened to that of [20] in the sense that we use the formalism of relational semantics in specifying the evaluation rules and the static semantics rules involve effect inference. It can also be likened to that of [23] in the sense that the formalism of relational semantics is enriched by labelling evaluation rules with event sequences to capture the communication behaviour. As a semantic tool for the proof we introduce the notion of channel environment which is a finite map from channel identifiers to channel ....
[Article contains additional citation context not shown here]
X. Leroy. Polymorphic Typing of an Algorithmic Language. PhD thesis, Univerity of Paris VII, 1992.
....ne typing of dynamic values. Since our operational semantics involves manipulation of dynamic attribute variables, which act as a form of pointers (without dynamic creation or mutation) we need to set up value typing analogous to those involves pointers and stores. Here we adopt Leroy s approach [19]. The technique of de ning typing of a closure using static typing judgment given below is due to Tofte[38] Let P be a dynamic attribute type assignment , which maps dynamic attribute variables to attribute types. Value typing is de ned by the following form of judgments: K; P j= v : value v ....
....j= E : T , and A; E e v then K; P j= v : 32 Proof By induction on the length of computation A; E e v. The proof proceeds by cases in term of the structure of e. The case of constants is trivial. Cases for abstraction and application can be shown similarly to the corresponding proof of [19]. Case (x a 1 am ) Suppose: K; A; T fx : 8(t 1 : k 1 ; t n : k n ) 1 ; m ) 0 g (x a 1 am ) 1 =t 1 ; n =t n ] 0 : By the assumption on E, we have K; P j= E(x) 8(t 1 : k 1 ; t n : k n ) 1 ; m ) 0 . By the typing rule ....
X. Leroy. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris VII, 1992. 36
....i 1 M 2 v 1 E 2 ; fix(k; E 2 ; A 2 ; i 2 ; M 3 ) v 1 ; A 2 ; i 2 ; i 2 1; i 2 1 k M 3 v 2 E 1 ; A 1 ; i 1 M 1 M 2 v 2 if jv 1 j = k where fix(k; E; A; i; M) is a x closure. For this extended calculus, the type soundness theorem can be proved by using the technique of [25] or [13]. Type inference and compilation can be directly extended for x construct without much diculty. 5.3. More re ned size information One feature that has contributed to simplify the method presented here is that the size of a given type is determined by its topmost type constructor. Because of this ....
X. Leroy. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris VII, 1992.
....; A k k g. We write j n j to denote the cardinality number assigned to a node Parallel Functional Programming via Data Parallel Recursion 19 variable n, and we assume that there are countably in nite node type variables n such that j n j = k. We prove the type soundness in the style of Leroy (Leroy, 1992), which re nes the treatment of store typing in Tofte s proof (Tofte, 1988) Types of semantic values are de ned relative to a recursive type variable environment, which is similar to Leroy s store typing. A recursive type variable environment R is a nite map from recursive type variables to the ....
....us to implement a prototype dataparallel language described in this article. We also thank the anonymous reviewers whose comments were very helpful to improve the paper. A Proof of Type Soundness This appendix gives a proof for the soundness theorem. The proof structure is similar to Leroy s (Leroy, 1992). Proposition 2 Let be a type environment, M be an expression, and be a type such that M : Then, the following three properties hold. 1. For any 0 and 0 obtained by replacing every occurrence of a node type variable n in and by some fresh node type variable n 0 , there is a ....
[Article contains additional citation context not shown here]
Leroy, Xavier. (1992). Polymorphic typing of an algorithmic language. Ph.D. thesis RR1778. INRIA.
....of the proposed type system and its extensions, possibly with a view towards implementing it, should look at the semantic machinery described in Sections 3.1 20 and 3. 2 of Chapter 3, the extensions discussed in Chapter 4, as well as the type inference machinery described in Chapter 3 of [Ler92] Of course, theoretical enthusiasts may want to go through all the detailed proofs provided in Chapter 3. For Part II, Chapter 5 and Chapter 6 provide a general introduction to the idea of using type information at run time, an intuitive description of the issues involved, and the technique of ....
....both in static and dynamic semantics. We present a new language construct called close that achieves this functionality through the type system. The interaction of polymorphism and imperative programming has been the subject of active research in the past decade [Dam85, Tof90, AM89, LW91, Ler92, TJ92, Wri92] Several 27 type systems have been proposed in the literature spanning a wide range of expressiveness and complexity. We present a brief survey in Section 2.2. Since our main task is to provide an encapsulation mechanism for imperative program fragments, we prefer to extend an ....
[Article contains additional citation context not shown here]
Xavier Leroy. Polymorphic Typing of an Algorithmic Language. Rapports de Recherche 1778, INRIA, Rocquencourt, France, October 1992. English translation of the author's Ph.D. thesis originally in French.
....With this definition, all the typing difficulties common in functional settings resurface. 4. Soundness We show the type soundness of our operational semantics, using an approach similar to subject reduction. We build on the techniques developed by Tofte, Wright and Felleisen, Leroy, and Harper [16, 18, 24, 27]. Our proof technique is an extension of Harper s, in that we deal with closures and stacks and thus avoid introducing locations into the term language. The typing of results with respect to stores is delicate. We would not be able to determine the type of a result by examining its substructures ....
Leroy, X., Polymorphic typing of an algorithmic language. Rapport de Recherche no.1778 (Ph.D Thesis). INRIA. 1992.
....definition, all the typing difficulties common in functional settings resurface. 4. Soundness We show the type soundness of our operational semantics, using an approach similar to subject reduction. We build on the techniques developed by Tofte, Wright and Felleisen, Leroy, Page 8 and Harper [16, 18, 24, 28]. Our proof technique is an extension of Harper s, in that we deal with closures and stacks and thus avoid introducing locations into the term language. The typing of results with respect to stores is delicate. We would not be able to determine the type of a result by examining its substructures ....
Leroy, X., Polymorphic typing of an algorithmic language. Rapport de Recherche no.1778 (Ph.D Thesis). INRIA. 1992.
....(A) and covariant in the body (B) 5 Soundness We show the type soundness of our operational semantics, using an approach similar to subject reduction. Our technique for proving typing soundness is an extension of Harper s [19] but using closures and stacks instead of formal substitutions (see [21, 30, 33] for related techniques) This approach yields a manageable proof for a realistic implementation strategy, and deals easily with typing rules that seem hard to justify denotationally. Our soundness result covers subtyping and polymorphism in the presence of side effects. The proof is an extension ....
Leroy, X., Polymorphic typing of an algorithmic language. Rapport de Recherche no.1778 (Ph.D Thesis). INRIA. 1992.
....M [N=x] ioe N is a value whereas, in , computation of N is duplicated in (x ) M j (x = N) if x appears more than once in M . Polymorphism Type generalization is restricted to variable bounded in a let construct. It is interesting to compare this remark with the distinction made by Leroy in [24, 25] between a construct, ilet valj, for value sharing and a construct, ilet namej, for type generalization. The same distinction is also introduced in [17] where it is stated that, in this variant of ML, it becomes possible to dene a correct ivariant call by value CPS transformj for a polymorphic ....
....on reference abstraction. We are in a situation quite comparable to the na#ve extension of the ML polymorphic type system to references. and in fact, to all imperative constructs. Many type systems, have been proposed for typing polymorphic references: Tofte [34] Mac Queen, Wright and Leroy ([24] gives a good overview) It would be interesting to study how those systems can be adapted to . An intuition is given in Appendix A. 5 Principal types Beside subject reduction, an important property for type systems is the principal type property, which states that for any process P and ....
Xavier Leroy. Polymorphic typing of an algorithmic language. Technical report, I.N.R.I.A., INRIA-Rocquencourt, Le Chesnay, France, 1992. Ph.D. thesis.
....( Gamma) 7 Note that instantiation acts on free variables (with renaming of bound variables if necessary) whereas generic instantiation acts on bound variables. We know present the inference system for P . It is the basic Damas Milner inference system slightly modified as in [CDDK86] or [Ler92] The slight differences come from the way type variables are treated. In the Damas Milner type system, type variables can be instantiated in any type. In our P system, the variables are just instantiated over a finite set of Properties or type variables. For instance the type 8ff:ff ff can ....
X. Leroy. Polymorphic typing of an algorithmic language. Technical Report 1778, INRIA-Rocquencourt, October 1992.
....Consistency of Dynamic and Static Semantics The method used in the proof of consistency depends on the approach used in the specification of the dynamic and static semantics. Relative merits of different methods in proving the two semantics consistent have been discussed in the related literature [22, 23, 24, 20]. Our formulation can be likened to that of [20] in the sense that we use the formalism of relational semantics in specifying the evaluation rules and the static semantics rules involve effect inference. It can also be likened to that of [22] in the sense that the formalism of relational semantics ....
....been discussed in the related literature [22, 23, 24, 20] Our formulation can be likened to that of [20] in the sense that we use the formalism of relational semantics in specifying the evaluation rules and the static semantics rules involve effect inference. It can also be likened to that of [22] in the sense that the formalism of relational semantics is enriched by labelling evaluation rules with event sequences to capture the communication behaviour. As a semantic tool for the proof we introduce the notion of channel environment which is a finite map from channel identifiers to channel ....
[Article contains additional citation context not shown here]
X. Leroy. Polymorphic Typing of an Algorithmic Language. PhD thesis, Univerity of Paris VII, 1992.
....typing of dynamic values. Since our operational semantics involves manipulation of dynamic attribute variables, which act as a form of pointers (without dynamic creation or mutation) we need to set up value typing analogous to those involves pointers and stores. Here we adopt Leroy s approach [15]. The technique of defining typing of a closure using static typing judgment given below is due to Tofte[33] Let P be a dynamic attribute type assignment , which maps dynamic attribute variables to attribute types. Value typing is defined by the following form of judgment: K; P j= v : oe value v ....
....K;P j= E : T , and A; E e v then K;P j= v : Proof By induction on the length of computation A; E e v. The proof proceeds by cases in term of the structure of e. The case of constants is trivial. Cases for abstraction and application can be shown similarly to the corresponding proof of [15]. Case (x a 1 1 1 1 am ) Suppose: K; A;T fx : 8(t 1 : k 1 ; t n : k n ) ff 1 ; ff m ) 0 g (x a 1 1 1 1 am ) 1 =t 1 ; n =t n ] 0 : By the assumption on E, we have K; P E(x) 8(t 1 : k 1 ; t n : k n ) ff 1 ; ff m ) 0 . By the typing ....
X. Leroy. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris VII, 1992.
....is that the soundness of the close operation can be checked and enforced statically via a simple extension to the traditional Hindley Milner type system. We present the key features of this type system below. 2 The Type System Our type system is based on the closure typing system of Leroy [3] that safely extends the traditional polymorphic Hindley Milner type system for imperative constructs. We further extend this system by parameterizing every object s type with one or more region expressions which statically model the memory locations reachable from that object. Region ....
Xavier Leroy. Polymorphic Typing of an Algorithmic Language. Rapports de Recherche 1778, INRIA, Rocquencourt, France, October 1992.
.... (BINDVAR) In the (BIND) case, where e 1 is not a value, the evaluation must end with e 1 ) v 1 ; 1 1 [v 1 =x]e 2 ) v 2 ; 2 let x = e 1 in e 2 ) v 2 ; 2 3 The same approach is taken by Wright [1992; 1995] and SML NJ [Greiner 1993; Hoang et al. 1993] but not by Leroy and Weis [Leroy 1992; Leroy and Weis 1991] ACM Transactions on Programming Languages and Systems, Vol. 18, No. 3, May 1996, Pages 254 267. Polymorphic Typing of Variables and References Delta 263 while the typing must end with e 1 : 1 ; x : AppClose ( 1 ) e 2 : 2 let x = e 1 in e 2 : 2 . ....
Leroy, X. 1992. Polymorphic typing of an algorithmic language. Ph.D. thesis, INRIARocquencourt Res. Rep. 1778, Le Chesnay, France.
....for type . The S component is a store typing, associating types to store locations. We simultaneously extend the j= relation to stores and store typings (j= s : S) and to evaluation environments and typing environments (S j= e : E) The definition of j= is shown below, and is completely standard [39, 23]. S j= b : if Typeof (b) S j= v : t if S j= v : TD(t) S j= x:a[e] 1 2 if there exists a typing environment E such that S j= e : E and E x:a : 1 2 S j= v 1 ; v 2 ) 1 Theta 2 if S j= v 1 : 1 and S j= v 2 : 2 S j= ref if = S( S j= e : E if ....
X. Leroy. Polymorphic typing of an algorithmic language. Research report 1778, INRIA, 1992.
....type . The S component is a store typing, associating types to store locations. We simultaneously extend the j= relation to stores and store typings (j= s : S) and to evaluation environments and typing environments (S j= e : E) The de nition of j= is shown below, and is completely standard [39, 23]. S j= b : if Typeof (b) S j= v : t if S j= v : TD(t) 13 S j= x:a[e] 1 2 if there exists a typing environment E such that S j= e : E and E x:a : 1 2 S j= v 1 ; v 2 ) 1 2 if S j= v 1 : 1 and S j= v 2 : 2 S j= ref if = S( S j= e : E ....
X. Leroy. Polymorphic typing of an algorithmic language. Research report 1778, INRIA, 1992.
No context found.
Xavier Leroy. Polymorphic typing of an algorithmic language. Research report 1778, INRIA, 1992.
No context found.
X. Leroy. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris VII, 1992.
First 50 documents
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