Results 1 -
5 of
5
Objective ML: An effective object-oriented extension to ML
- THEORY AND PRACTICE OF OBJECT SYSTEMS
, 1998
"... Objective ML is a small practical extension to ML with objects and top level classes. It is fully compatible with ML; its type system is based on ML polymorphism, record types with polymorphic access, and a better treatment of type abbreviations. Objective ML allows for most features of object-orien ..."
Abstract
-
Cited by 46 (3 self)
- Add to MetaCart
Objective ML is a small practical extension to ML with objects and top level classes. It is fully compatible with ML; its type system is based on ML polymorphism, record types with polymorphic access, and a better treatment of type abbreviations. Objective ML allows for most features of object-oriented languages including multiple inheritance, methods returning self and binary methods as well as parametric classes. This demonstrates that objects can be added to strongly typed languages based on ML polymorphism.
Typing Record Concatenation for Free
, 1992
"... We show that any functional language with record extension possesses record concatenation for free. We exhibit a translation from the latter into the former. We obtain a type system for a language with record concatenation by composing the translation with typechecking in a language with record exte ..."
Abstract
-
Cited by 36 (0 self)
- Add to MetaCart
We show that any functional language with record extension possesses record concatenation for free. We exhibit a translation from the latter into the former. We obtain a type system for a language with record concatenation by composing the translation with typechecking in a language with record extension. We apply this method to a version of ML with record extension and obtain an extension of ML with either asymmetric or symmetric concatenation. The latter extension is simple, flexible and has a very efficient type inference algorithm in practice. Concatenation together with removal of fields needs one more construct than extension of records. It can be added to the version of ML with record extension. However, many typed languages with record cannot type such a construct. The method still applies to them, producing type systems for record concatenation without removal of fields. Object systems also benefit of the encoding which shows that multiple inheritance does not actually require...
Extension of ML Type System with a Sorted Equational Theory on Types
, 1992
"... We extend the ML language by allowing a sorted regular equational theory on types for which unification is decidable and unitary. We prove that the extension keeps principal typings and subject reduction. A new set of typing rules is proposed so that type generalization is simpler and more efficient ..."
Abstract
-
Cited by 33 (10 self)
- Add to MetaCart
We extend the ML language by allowing a sorted regular equational theory on types for which unification is decidable and unitary. We prove that the extension keeps principal typings and subject reduction. A new set of typing rules is proposed so that type generalization is simpler and more efficient. We consider typing problems as general unification problems, which we solve with a formalism of unificands. Unificands naturally deal with sharing between types and lead to a more efficient type inference algorithm. The use of unificands also simplifies the proof of correctness of the algorithm by splitting it into more elementary steps. Extension du syst`eme de type de ML par une th'eorie 'equationnelle avec sortes sur les types R'esum'e Le typage du langage ML est 'etendu en consid'erant les types modulo une th'eorie 'equationnelle r'eguli`ere avec sortes pour laquelle l'unification est d'ecidable. Cette extension conserve la propri'et'e d'avoir un type principal ainsi que la conservatio...
A Type System that Reconciles Classes and Extents
- In 3rd International Workshop on Database Programming Languages
"... We present a type system that naturally couples two dierent, and apparently contradictory, notions of inheritance that occur in object-oriented databases. To do this we distinguish between the type and a kind of a value. A type describes the entire structure of a value, while a kind describes only ..."
Abstract
-
Cited by 12 (4 self)
- Add to MetaCart
We present a type system that naturally couples two dierent, and apparently contradictory, notions of inheritance that occur in object-oriented databases. To do this we distinguish between the type and a kind of a value. A type describes the entire structure of a value, while a kind describes only the availability of certain elds or methods. This distinction allows us to manipulate heterogeneous collections (collections of values with diering types) in a statically type-checked language. Moreover, the type system is polymorphic and types may be inferred using an extension of the technique used in ML. This means that it is easy to express general-purpose operations for the manipulation of heterogeneous collections. We believe that this system not only provides a natural approach to static type-checking in object-oriented databases; it also oers a technique for dealing with external databases in a statically typed language. 1 Introduction The term \inheritance" is used in ...
Programming Objects with ML-ART
, 1994
"... and Record Types Didier R'emy INRIA-Rocquencourt, BP 105, F-78153 Le Chesnay Cedex. To appear in TACS'94 Abstract. Class-based objects can be programmed directly and efficiently in a simple extension to ML. The representation of objects, based on abstract and record types, allows all usual op ..."
Abstract
- Add to MetaCart
and Record Types Didier R'emy INRIA-Rocquencourt, BP 105, F-78153 Le Chesnay Cedex. To appear in TACS'94 Abstract. Class-based objects can be programmed directly and efficiently in a simple extension to ML. The representation of objects, based on abstract and record types, allows all usual operations such as multiple inheritance, object returning capability, and message transmission to themselves as well as to their super classes. There is, however, no implicit coercion from objects to corresponding ones of super-classes. A simpler representation of objects without recursion on values is also described. The underlying language extends ML with recursive types, existential and universal types, and mutable extensible records. The language ML-ART is given with a call-by-value semantics for which type soundness is proved. Introduction An important motivator for type-checking extensible records is their application to object encoding. Initiated by Cardelli in 1984 [Car84], c...

