| Didier R emy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming, pages 67--95. MIT Press, 1994. |
....useful extensions such as extensible records, record concatenation and rst class labels. The HM(X) system proved to be useful in designing such extensions in a systematic way. In turn, I relate the HM(X) record applications to some previous work. Extensible records were already considered by [Gas98, HP90, R em93]. In my dissertation, I show that Ohori s work can be extended to deal with extensible records. Gaster s work [Gas98] improves compared to others in that he can provide an ecient compilation method for extensible records. In [Dri93, DH95] ecient implementation methods for dynamic dispatch are ....
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
....unsolvable subsets. In contrast, our approach yields a principal description of the type errors via the type inference algorithm for multivocal types. Our slices are not determined by annotations on constraints, but rather by flow labels inferred by a flow analysis. 6. 3 Row Types Remy and Wand [36, 30, 31] introduce row types, the heart of our approach, for modeling record and variant types. They give sound and complete type inference algorithms for their respective systems. Pottier [28] considers type inference for constrained type systems with subtyping. His constraint logic includes conditional ....
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. The MIT Press, 1994.
....polymorphism has been a long standing area of research. By structural polymorphism, we mean a form of parametric polymorphism in which some types may have a partially known structure, often denoted by a notion of row variable or kinded variable. Applications range from polymorphic records [14, 17] to polymorphic variants [16, 5] and objects with rst class (dynamic) messages [12] All these systems were proposed as extensions of the Hindley Milner type system [10] with growing degrees of complexity. A recent trend is to simplify these type systems by moving to a constraint based ....
D. Remy. Type inference for records in a natural extension of ML. In C. A. Gunter and J. C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
....given the type ## # : it simply recreates the active localities frozen in its argument. The check that these localities do not interfere with currently active localities is done when typing a message on run. Note that our use of multiset variables is very similar to row variables described in [16]. Subtyping Subtyping is explicitly used in typing rule App. Returning to the example of the run resource above, this resource can receive a frozen process as argument, as in (run #.a. 0) 0] It can also receive a resource name, as in (run create a ) with a ( # a(0) 0]#, since #unit# a is ....
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
....on the set of constraints allowed to appear. In this paper, we make more explicit the connection between the form of overloading provided by the CHR based system and type classes as found in Haskell. The ideas of the CHR based overloading system have been incorporated into the Chameleon [22] language. The Chameleon syntax mostly follows Haskell syntax. Overloaded identifiers are defined using the overload keyword which is similar to instance in Haskell. However, no class declarations are necessary. The user can design her own system by providing CHRs via the rule keyword. For ....
....two propagation rules: rule X a = Y a rule Y a = X a There seems to be a cyclic dependency. However, X t reduces to X t, Y t, which is the final store. Application of the second rule would only add a redundant constraint. We have incorporated various checks for termination of CHRs. See [22] for details. Clearly, each check is incomplete in the sense that there might be some CHRs which are terminating, but for which our termination check signals failure. 2.2 Confluence Another important property of the program theory is confluence. Confluence states that, starting from a set of ....
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
.... typical primitive operations on records are access (extracting the contents of a field) update (modifying the contents of an existing field) extension (adding a new field) restriction (removing an existing field) and concatenation (merging two existing records into a new one) 1] Rows [16, 14] offer syntax to describe infinite families of types, indexed by labels. Rows offer random access to any single component. Furthermore, they offer uniform access to every component at once; that is, by imposing a constraint on rows, one effectively imposes a family of constraints, point wise, on ....
.... ranges over terms of sort Type and kind type, ranges over terms of sort Row and kind field, and ranges over terms of sort Type and kind field: j type j type j j f g : j : j field j field j Pre j Abs This concrete style of definition is standard [14, 11]. Parameterizing our development with respect to a ground signature allows us to accommodate a whole family of definitions in this style. 2.2 Logical Model We now define the universe of ground terms, which forms the model within which types and constraints are interpreted. As in [12, 7] we ....
[Article contains additional citation context not shown here]
Didier R emy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1994. URL: ftp://ftp.inria.fr/INRIA/Projects/cristal/Didier. Remy/taoop1.ps.gz.
....marked as present (notation x : p) meaning that the expression e having type fx : p; g might depend instantaneously on x, or absent (x : a) meaning that e does not depend instantaneously on x. The association lists between variables and dependence information are represented as rows ( 20] [14]) Rows were originally designed to introduce extensible records in ML. Generally speaking, rows allow in some cases (and in ours in particular) to use polymorphism to replace subtyping. The grammar of types is as follows: types: type variable j f g dependency information (rows) j 1 ....
....variables) which intuitively are the elds which can not appear in , because they are already present on the left hand side of a larger row of which is the tail. One can check easily that all the rules listed in this section are well sorted. For all these reasons general theorems about rows([13, 14]) apply and our system has the principal typing property. The binder 8 plays its usual role in type schemes. There is also the classic relation to be an instance of between types and types schemes, noted , and inductively de ned by: If , then for any 0 and , 0 = ....
D. Remy. Type inference for records in a natural extension of ML. In C. A. Gunter and J. C. Mitchell, editors, Theoretical Aspects Of ObjectOriented Programming. Types, Semantics and Language Design. MIT Press, 1993. ftp://ftp.inria.fr/INRIA/Projects/cristal/Didier.Remy/taoop1.ps.gz.
....v) i (reraise) Figure 8: Syntax and semantics of nally and reraise 8.1 Types and constraints In mlif, the grammar of types, rows, alternatives and levels is extended with type variables. We let range over type variables of all four kinds; no ambiguity will arise. Furthermore, R emy s [19] row syntax is introduced, turning rows into nite lists of bindings from exception names to alternatives, terminated with a row variable. j unit j int j ( j ref j exn : j ( j Abs j Pre ; j The variable free types ....
....are standard [12] Those on the second line are subtyping constraints; those on the third line are custom constraint forms, which correspond to the notions developed in sections 5 and 7.2. We omit the sorting rules necessary to ensure that terms and constraints involving rows are well formed; see [19]. Let a ground assignment map every type variable to a ground type, row, alternative, or level, according to its kind. The meaning of terms and constraints under an assignment is de ned in the obvious way. We write C C 0 (read: C entails C 0 ) if and only if every assignment which ....
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993. URL: ftp://ftp.inria.fr/INRIA/Projects/ cristal/Didier.Remy/taoop1.ps.gz.
....[18] who investigated reflective implementations of the polymorphic relational algebra operators. Other important related work is that on the extension of functional programming languages with polymorphic record types. Some of the most sophisticated proposals in that direction were made by R emy [16, 17]. This work adds record types to the type system of ML, featuring polymorphic field selection and record concatenation. While this system captures many realistic functional programs involving records, it cannot express the conditions on the types of relations implied by certain relational algebra ....
D. R'emy. Type inference for records in a natural extension of ML. In Gunter and Mitchell [10], pages 67--96.
....(r)e k g in downcast (f(upcast(r 0 ) where r 0 is a record of type fb : bool; i : intg, f is a function of type fb : bool; other : bitsg fb : bool; other : bitsg, and k is a key of type hinti. This trick is reminiscent of the treatment of record subtyping in terms of row polymorphism [22, 27]. Concurrency and Distribution. Last but not least, we would like to consider adaptating these ideas to concurrent and or distributed calculi with cryptographic primitives, such as Abadi and Gordon s spi calculus [1, 7] This adaptation is challenging because the semantics of these 19 languages ....
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. MIT Press, 1994.
No context found.
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1994.
No context found.
Didier R emy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming, pages 67--95. MIT Press, 1994.
No context found.
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
No context found.
Didier R'emy. Type inference for records in a natural extension of ML. In Gunter and Mitchell [GM93].
No context found.
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming: Types, Semantics and Language Design. MIT Press, 1993. 16
No context found.
Didier R'emy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. MIT Press, 1994.
No context found.
Didier Remy. Type Inference for Records in a Natural Extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1994.
No context found.
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
No context found.
D. Remy. Type inference for records in a natural extension of ML. In C. A. Gunter and J. C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
No context found.
R' emy, D. Type inference for records in a natural extension of ML. Research report 1431, INRIA, 1991.
No context found.
Didier Remy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
No context found.
Didier R#my.Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-OrientedProgramming. Types, Semantics and Language Design. MIT Press, 1993.
No context found.
R emy, D. 1994b. Type inference for records in a natural extension of ML. In Theoretical Aspects of Object-Oriented Programming, C. Gunter and J. Mitchell, Eds. MIT Press, Cambridge, Mass., 67-96.
No context found.
Didier R'emy. Type inference for records in a natural extension of ML. Technical Report 1431, INRIA-Rocquencourt, BP 105, F-78 153 Le Chesnay Cedex, May 1991. File type-inf-records.
No context found.
Didier R'emy. Type inference for records in a natural extension of ML. Technical Report MS-CIS-90-73, University of Pensylvania, 1990. Subsumed by [*R'em91].
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