| Didier Remy. Typechecking records and variants in a natural extension of ml. In POPL, pages 77--88, 1989. |
....a representative sample of this related work. 1. 1 Locating Errors with Multivocal Types In the present work, we pursue an approach based on the theory of discriminative sum types, which has been developed for soft typing [7, 18, 38] and which is closely related to systems with row types [35, 29]. While row types are usually indexed with record or variant labels, discriminative sum types are indexed with type constructors and the component types are the argument types of the constructors. Anticipating the formal definition in Section 3.4, the idea of a discriminative sum type is that at ....
....associated with a constraint system must be monotone, transitive, and closed under substitutions. For notational convenience we usually write C,D for the union (conjunction) of two constraint sets C and D. Discriminative sum types are a variation of row types introduced by Wand [35] and Remy [29] originally intended for the purpose of typing records and variants. While row types are usually indexed with record or variant labels, discriminative sum types are indexed with type constructors and the component types are the argument types of the constructors. Similar constructions have been ....
[Article contains additional citation context not shown here]
Didier Remy. Typechecking records and variants in a natural extension of ML. In Proc. 16th Annual ACM Symposium on Principles of Programming Languages, pages 77--88, Austin, Texas, January 1989. ACM Press.
....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 framework [13, 11, 18, 15] This indeed ....
....structurally monomorphic types. We might want to allow building lists of records containing di erent elds, with only part of them common to all members. This requires giving polymorphic types not only to eld access, but also to record values. A type system allowing it was rst proposed by R emy [16], but here we use a more intuitive formalism [5] which is also closer to Ohori s. fname = Jacques ; age = 30g : fname : string ; age : intg; fname; ageg) fun x x :age 1 : fage : intg; fageg; L) int fname = Serge ; weight = 13g] l 1 : fname : string ; ....
[Article contains additional citation context not shown here]
D. Remy. Typechecking records and variants in a natural extension of ML. In Proc. ACM Symposium on Principles of Programming Languages, pages 77-87, 1989.
....with during the constraint normalization phase. The type expression here specifies that names l 1 and l 2 have been bound, and therefore are remapped to , but that all other names stay as they were. A very similar mechanism called row variables has been used in the context of record calculi[27, 22]. The new type syntax is: T : j X l j P T P : l 1 : T 1 ; l n : T n ) j (l 1 : T 1 ; l n : T n ; X ) all l i distincts) Parameter types of the same form as before are called closed parameter types, while the new form with a default association : X is called ....
Didier R emy. Typechecking records and variants in a natural extension of ML. In Proceedings ACM POPL'89, pp 242-249.
....to the type sys tem without ML polymorphism. Its extension V2 is for the polymorphic discipline of rank 2 and the relation between W and V2 is not clear. On the side of the SML module lan guage, Aponte [3] presented a type checking algorithm for ModL based on Remy s approach to record typing [25]. Her approach is very elegant; however, in practice it is probably very difficult to implement efficiently. It is also not clear whether her algorithm can be modified to do our assumption inference. 7 Concluding Remarks We have presented a separate compilation method that achieves the smartest ....
Didier Remy. Typechecking records and variants in a nat- ural extension of ML. In Sixteenth Annual AUM Syrup. on Principles of Prog. Languages, pages 77-87, New York, Jan 1989. ACM Press.
....was studied in detail in [14] In addition to the work on Extended ML and the work of Leroy and Harper and Lillibridge already cited, the work of Aponte [1] should also be noted. It provides an other approach to semantic representations for ML modules, based on Rmy s work on polymorphic records [12]. So far, this approach deals with first order functors only. 2 Semantic objects Our semantic objects are defined informally using a mixture of simple mathematical constructions (e.g. sets of sequences of identifiers) and term structures (e.g. lambda abstractions) over these constructions. The ....
Didier R6my. Typechecking records and variants in a natural extension of ml. In Sixteenth Annual ACM Syrup. on Principles of Prow. Languages, pages 77 88, New York, Jan 1989. ACM Press.
....unifies type variables with their bounds. He uses a scheme similar to ours to pass partial type information, treating wildcards (that correspond to our ) as unique fresh type variables. Roughly similar to subtype polymorphism, but incomparable in expressive power, are Remy s row variables [Rem89] A system which combines first class polymorphism with row variables, as studied in [GR99] can express many aspects of F# , and admits a complete and decidable type inference algorithm based on unification. But the resulting type system tends to become fragile and complex and the necessary ....
Didier Remy. Typechecking records and variants in a natural extension of ML. In Proc. 16th ACM Symposium on Principles of Programming Languages, 1989.
....unifies type variables with their bounds. He uses a scheme similar to ours to pass partial type information, treating wildcards (that correspond to our ) as unique fresh type variables. Roughly similar to subtype polymorphism, but incomparable in expressive power, are Remy s row variables [Rem89] A system which combines first class polymorphism with row variables, as studied in [GR99] can express many aspects of F# , and admits a complete and decidable type inference algorithm based on unification. But the resulting type system tends to become fragile and complex and the necessary ....
Didier Remy. Typechecking records and variants in a natural extension of ML. In Proc. 16th ACM Symposium on Principles of Programming Languages, 1989.
....with principal types. That means, designing record systems becomes construction of constraint systems which model record systems. 1 Introduction Type systems for records have become a playing field for type theorists [HP91, Car84, CM89, EST95, R em95a, Jon92, Oho95, Wan88, Wan89, R em95b, R em89] One of the main motivations for record systems is that they can be used to encode object calculi [Wan89, R em95a] or module systems [Apo93, Jon96] Also, they are useful for data type declarations and in database programming [OB88] But there are a couple of challenging problems to Supported ....
....records based on subtyping [HP91, Car84, CM89, EST95, R em95a] have problems to support record concatenation and a compilation calculus. Also, it seems that such type systems do not provide good wrappers for object oriented languages [BPF97] The concept of row variables [Wan88, Wan89, R em95b, R em89] has also some limitations. Ohori [Oho95] introduced kinds for record types that can be seen as predicates. He could provide an efficient compilation calculus but his system lacks features like addition or removal of field labels. The approaches of R emy [R em92] Kennedy [Ken96] and Gaster and ....
[Article contains additional citation context not shown here]
Didier R'emy. Typechecking records and variants in a natural extension of ML. 1989.
....of VMabl into OCaml This section explains an implementation of VMabl, specifically, its translation into OCaml [19] The translation itself is implemented by using Camlp4 [10] a pre processor (and pretty printer) for OCaml. The translated code uses labeled arguments and polymorphic variants [12, 25] (so the target language may well be called OLabl [11] rather than OCaml) Although we have adopted OCaml as the actual target language, observations in this section would also apply to other typed languages extended with labeled arguments and polymorphic variants. We are interested in typed ....
Didier R'emy. Type checking records and variants in a natural extension of ML. In Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 77--88, 1989.
....11] Objects do not have base types, so type inference with atomic subtyping does not apply to Abadi and Cardelli s calculus. The object types considered in this paper are rather like record types. Type inference for calculi with records but no subtyping has been studied by Wand [24] and Remy [22]. In the presence of subtyping, unication based approaches to type inference seem not to apply. Type inference for calculi with records and subtyping has been studied by Eifrig, Smith, and Trifonov [9] using the approach to type inference of Aiken and Wimmers [5] Their algorithm does not ....
Didier R#my. Typechecking records and variants in a natural extension of ML. In Sixteenth Symposium on Principles of Programming Languages, pages 77 88, 1989.
....coexisting inheritance and subtyping hierarchies. Slide 74 78 Multiple inheritance is discussed in [99, 8, 17, 81, 58] Slide 80 83 The basic encoding is from [17, 21] The update problem is made clear in [12] Mutable types are from [18] Simpler, specialized subtyping systems are presented in [109, 88, 70, 68, 71, 2, 1, 52]. Minimal calculi are proposed in [40, 92, 16] A speciale case of the update problem is tackled in [20] Recursion and inheritance is analyzed in [33, 14, 15, 5] A calculus with covariant specialization is proposed in [41, 22, 23] Undecidability of bounded polymorphism is shown in [84] ....
Didier R'emy. Typechecking records and variants in a natural extension of ML. In Sixteenth Symposium on Principles of Programming Languages, pages 77--88. ACM Press, January 1989.
....not allowing additional methods in the wrapper would be a severe restriction, which would greatly reduce the usefulness of generic wrappers. Furthermore, this approach would fail in languages that support final classes or method header specialization (Sect. 6. 2) Negative type information [24] could express that subtypes of IA must not have a method, like n, that might be overridden in an unsound way. However, this would also mean that an aggregate of an AWrapper and a subtype of IA would not be of a subtype of IA. Furthermore, negative type information cannot be expressed in type ....
Didier Remy. Typechecking records and variants in a natural extension of ML. In Proc. 16th ACM Symp. Principles of Programming Languages, pages 242--249. ACM Press, 1989.
.... selection can then be represented by families of functions (indexed by labels) of type: n l ) 8r :8t : r has l : t) r r n l ( j l = 8r :8t : r lacks l ) r t hr j l : ti ( l ) 8r :8t : r has l : t) r t Details of the relationship between this approach and those of [Rem89, CM90] are given in [HP90] 1.3 Example: subtyping Languages with subtyping can be described using predicates of the form oe oe 0 , representing the assertion that oe is a subtype of oe 0 . Many such systems, including those of [Mit84, FM89] allow the use of implicit coercions from one type to ....
....denoted mgu( 0 ) or the algorithm fails and there are no unifiers for and 0 . In the following, we write U 0 for the assertion that the unification algorithm succeeds by finding a most general unifier U for and 0 . 6. 2 A type inference algorithm Following the presentation of [Rem89], we describe the type inference algorithm using the inference rules in Figure 5. These rules use typings of the form P j TA W M : where P is a set of predicates, T is a substitution, A is a type assignment, M is a term and is a simple type expression. The typing rules can be interpreted as ....
Didier R'emy. Typechecking records and variants in a natural extension of ML. Proceedings of the 16th annual ACM symposium on Principles of Programming Languages, Austin, Texas, January 1989.
....an ecient compilation method that always compile out labeled eld access into a direct index operation, as we shall explain in the next subsection. In addition to record extension operations, various forms of record concatenation operations have also been proposed [Harper and Pierce 1991; R emy 1992; Wand 1989]. Inclusion of any of these operations signi cantly complicates both the type theoretical analysis and compilation. Also, it is not obvious which of these powerful operations is really needed. For example, in database programming a typical application area where labeled records play an important ....
R emy, D. 1989. Typechecking records and variants in a natural extension of ML. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, New York, 77-87.
....Wand s system, however, does not share ML s feature of existence of principal typing schemes (see [OB88, Wan88] for an analysis of this issue. Based on Wand s general observation, OB88] extended the notion of principal type schemes to include conditions on type variables. See also [Sta88, JM88, Rem89, Wan89] for related studies. This extension allows ML polymorphism to be extended to standard operations on records and variants and also to various database operations such as join and projection. See also [Wan89, CM89, HP91, Rem91] for proposals for other operations on records. For example, ....
D. Remy. Typechecking records and variants in a natural extension of ML. In Proc. ACM Symp. on Principles of Programming Languages, pages 242-249, 1989.
....of pattern matching. Section 5. More examples are given to illustrate other features of CPL. These features include: 1) Types are automatically inferred in CPL. In particular, CPL has polymorphic record types. However, the type inference system is simpler than that of Ohori [16] Remy [18], etc. 2) External functions can be easily imported from the host system into CPL. Scanners and writers for external data can be easily added to CPL. More details can be found in The Kleisli Query System Reference Manual. 3) An extensible optimizer is available. The basic optimizer does loop ....
.... Delta [ e n ] ffl The expression e 1 g e 2 means fe 1 g f g e 2 . ffl The expression e 1 g e 2 means f e 1 g f g e 2 . ffl The expression e 1 ] e 2 means [e 1 ] e 2 . CPL comes with a type inference system that is considerably simpler than those of Ohori [16] Remy [18], etc. because CPL does not have a record concatenation operation. Hence there is no need to indicate types any where in CPL expressions. So we drop our type superscripts henceforth, except when giving typing rules. 2.3 Examples: CPL s Modeling Power Sets, lists, bags [11] records, and variants ....
[Article contains additional citation context not shown here]
Didier Remy. Typechecking records and variants in a natural extension of ML. In Proceedings of 16th Symposium on Principles of Programming Languages, pages 77--88, 1989.
....unifies type variables with their bounds. He uses a scheme similar to ours to pass partial type information, treating wildcards (that correspond to our ) as unique fresh type variables. Roughly similar to subtype polymorphism, but incomparable in expressive power, are Remy s row variables [Rem89] A system which combines first class polymorphism with row variables, as studied in [GR99] can express many aspects of F# , and admits a complete and decidable type inference algorithm based on unification. But the resulting type system tends to become fragile and complex and the necessary ....
Didier Remy. Typechecking records and variants in a natural extension of ML. In Proc. 16th ACM Symposium on Principles of Programming Languages, 1989.
....polymorphism or dependencies on either terms or types is represented by explicit abstractions. 4.2.3 Type Reconstruction Much work has been done with enhancing the ML type reconstruction system. The main threads of this work cover type reconstruction with subtypes [Wan91, Sta88, Oho89, FM90, R 89] type reconstruction with recursive types [CC91] type reconstruction with polymorphic recursion [KTU93a, Hen93] and type reconstruction in stratified polymorphic systems [Lei91, KT92, McC84] There has been some work in dependent type inference [Ell89] that we discuss shortly. There has also ....
....than implicit ML style parametric polymorphism at the outer level, as we do with type schemes. The work on type reconstruction and subtypes covers a range of research that investigates the extension of ML with properties of object oriented and database programming [Wan91, Sta88, Oho89, FM90, R 89] All of these works propose new extensions to ML representing general language facilities and then investigate type reconstruction. There are also many other miscellaneous extensions to ML for which type reconstruction has been extended. 101 4.2.4 Unification and Matching The heart of the ....
D. R'emy. Type checking records and variants in a natural extension of ML. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 77--88. ACM, January 1989. 108
No context found.
Didier Remy. Typechecking records and variants in a natural extension of ml. In POPL, pages 77--88, 1989.
No context found.
Didier Remy. Typechecking records and variants in a natural extension of ml. In POPL, pages 77--88, 1989.
No context found.
Didier Remy. Type checking records and variants in a natural extension of ML. In Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 77-88, 1989.
No context found.
Didier Remy. Typechecking records and variants in a natural extension of ml. In POPL, pages 77--88, 1989.
No context found.
D. R emy. Typechecking records and variants in a natural extension of ML. In Proc. of the 17th ACM Symposium on Principles of Programming Languages (POPL), Austin, pages 242--249. ACM, January 1989. Also 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.
D. Remy. Typechecking records and variants in a natural extension of ML. In Proc. ACM Symposium on Principles of Programming Languages, pages 77-87, 1989.
No context found.
Remy, D. Typechecking records and variants in a natural extension of ML. In ACM Symposium on Principles of Programming Languages, 1989.
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