| D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 40--53. ACM Press, 1997. |
....to abstraction over field names: For example, one might want to use a function let fn x = y.x; to select the field x from record y. Neither first class messages nor first class record fields can be type checked in languages from the ML family such as SML [14] or the objective ML dialect O Caml [23]. Recently, the second author has proposed an extension to the ML type system that can deal with first class messages [17] He defines a type inference procedure in terms of kinded unification [19] and proves it correct. This procedure is, however, formally involved and not easily understandable ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In 24 Symp. on Principles of Programming Languages, pp. 40--53. ACM Press, 1997.
....that input to the function is a class that implements the given interface. Although the mixin contract is, in principle, checkable by a type system, no such type system is currently implemented. OCaml [33] is rich enough to express mixins, but typechecking fails for any interesting use of mixins [31, 46]. This contract is an example where the expressiveness of contracts leads to an opportunity to improve existing type systems. Hopefully this example will encourage type system designers to build richer type systems that support practical mixins. 5.2.5 Callbacks and Stateful Contracts Callbacks ....
Remy, D. and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Proceedings of ACM Conference Principles of Programming Languages, pages 40--53, January 1997.
....3 does not express the kind of type relationships necessary for importing and exporting interface types (e.g. importing types A and B where A must be a subtype of B) Others have explored a similar combination of classes and modules in a typed setting. The module systems in Objective Caml [55, 69] and OML [70] support externally specified connections, and since a class can be defined within a module, these languages also provide a simplistic form of mixins. These modules and mixins do not allow the operation extension demonstrated in Section 2.2 because an imported class must match the ....
R'emy, D. and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Proc. ACM Symposium on Principles of Programming Languages, pages 40--53, Paris, France, 15--17 Janurary 1997.
....[24] identify that many casts in C programs are safe upcasts and present a tool to check such casts. The programming languages CLU [17] Cedar Mesa [16] and Modula f2 ,3g [5] include similar notions of a dynamic type and a typecase statement. This idea can also be seen in CAML s exception type [22]. Other related work in this area falls into three broad categories: 1) extensions to C s type system, 2) adding runtime checks to C, and (3) removing run time checks from LISP. Previous e orts to extend C s type system usually deal with polymorphism. Smith et al. 25] present a polymorphic ....
D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Symposium on Principles of Programming Languages, pages 40-53, 1997.
....we present an overview of the relevant work in these these areas. The reader seeking a more detailed survey should refer to [BC96] There have been many languages attempting to integrate OOP and FP, the closest to CLOVER being Kea [MHH91] Rapide [MMM91] HOP [DV96] LIFE [AP93] Objective ML [RV96] and Object ML [RR96] None of these combine the features we require (inheritance, subsumption and dynamic method despatch from OOP and referential transparency, higher order functions, currying, partial applications and laziness from FP) into a single completely type safe language. The languages ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. Presented at Third International Workshop on Foundations of Object-Oriented Languages (FOOL 3), July 1996. This article was processed using the L A T E X macro package with LLNCS style
....not demand subtyping. A system without subtyping, but with a su cient degree of polymorphism, may also be used. For instance, if L happens to be the power set of a set P (which represents, say, principals) then labels may be typed using P indexed rows [21] A similar idea underlies Objective ML [22], a typed object oriented language which does not rely on subtyping. Axiom 4 (Labels) Every label is a type: L T . If l; m 2 L, then l : m implies l 4 m. Our last two axioms concern integers and pairs. They are far less important than axioms 1 4: their main use is to help formulate the ....
....calculus is simply core ML with pairs, extended with label constants and the primitive operation . In practice, almost any type system for core ML will do, provided it allows giving an appropriate type scheme to every l 2 L and to . Thus, we have a very wide range of systems to choose from, e.g. [10, 24, 26, 22, 3, 16]. We pick a subtypingconstraint based type system, previously studied by the rst author. By lack of space, we must describe it very succinctly. More detailed accounts appear in [20, 19] For simplicity, we distinguish identi ers bound by , denoted x; y; from those bound by let , ....
D. Rmy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 4053, Paris, France, Jan. 1997. URL: ftp://ftp.inria.fr/INRIA/Projects/cristal/ Didier.Remy/objective-ml!popl97.ps.gz.
....is particularly well suited for implementing Java extensions based on higher order functions and types such as those in Pizza [27] 7 Related Work Object and class encodings have been extensively studied. The use of row polymorphism positions our scheme most closely to that of Remy and Vouillon [32], however the special object types of Objective ML reduce the use of row polymorphism to only the cases of binary methods [4] while the self application semantics of our scheme uses rows to represent the open type of self even though Java lacks binary methods. The unordered records of Objective ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Twenty-fourth Annual ACM Symp. on Principles of Prog. Languages, pages 40--53, Jan 1997.
....Semantics of Inheritance. PhD thesis, Dep. of Computer Science, Brown Univ. May 1989. Tech. Report CS 89 33) 16] Cook, W. R. Hill, W. L. and Canning, P. S. Inheritance is not subtyping. In ACM Symp. on Princ. of Program. Lang. 1990) ACM, pp. 125 135. Reprinted as Chapter 14 of [23]) 17] Dahl, O. J. and Nygaard, K. An Algol based simulation language. Comm. ACM 9, 9 (Sept. 1966) 671 678. 18] DiBlasio, P. and Fisher, K. A calculus for concurrent objects. In CONCUR 96, vol. 1119 of LNCS. SpringerVerlag, 1996, pp. 655 670. 1 12 [19] Eifrig, J. Smith, S. ....
....and Mitchell, J. C. On the relationship between classes, objects and data abstraction. In Mathematics of Program Construction, Marktoberdorf summer school, LNCS. Springer Verlag, 1997, p. to appear) 22] Girard, J. Y. Lafont, Y. and Taylor, P. Proofs and Types. Cambridge Univ. Press, 1989. [23] Gunter, C. A. and Mitchell, J. C. Eds. Theoretical Aspects of Object Oriented Programming. MIT Press, 1994. 24] Guttag, J. V. Horowitz, E. and Musser, D. R. Abstract data types and software validation. Comm. ACM 21, 12 (Dec. 1978) 1048 1063. 25] He, J. F. Hoare, C. A. R. and Sanders, ....
[Article contains additional citation context not shown here]
D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 40--53. ACM Press, 1997.
....results, and polymorphic type systems are not treated. The type system obtained is very similar to that used for binding time analysis by Bondorf and Jrgensen [BJ93] The analysis is more powerful than Steensgaard s, but less powerful than Wright and Cartwright s (and Lackwit s) Rmy and Vouillon [RV97] describe the type system of Objective Caml, which provides type inference for an object oriented extension of ML, without the use of subtype constraints. They use polymorphism on row variables to write functions that are 29 polymorphic over object types, and they require explicit coercions in ....
D. Rmy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. Proceedings of the 24th Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, January 1997.
....laid the foundations for Objective ML (see next subsection) but unfortunately these foundations are not referentially transparent. 3.4 1996 This year has witnessed an intensifying of interest in the field with several new languages being established, including our language CLOVER. Objective ML [37] is implemented on top of Caml Special Light and is an extension of ML with objects, top level classes, multiple inheritance, methods returning self, binary methods and parametric classes. Object ML [38] extends ML with objects, subtyping and heterogeneous collections. CLAIRE [19] is a high level ....
Remy, D., Vouillon, J.: Objective ML: A simple object-oriented extension of ML. In Proc. 3rd FOOL, (1996)
....to abstraction over field names: For example, one might want to use a function let fn x = y.x; to select the field x from record y. Neither first class messages nor first class record fields can be type checked in languages from the ML family such as SML [14] or the objective ML dialect O Caml [24]. Recently, the second author has proposed an extension to the ML type system that can deal with first class messages [18] He defines a type inference procedure in terms of kinded unification [20] and proves it correct. This procedure is, however, formally involved and not easily understandable ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Proceedings of the 24 th ACM Symposium on Principles of Programming Languages, pp. 40--53. ACM Press, New York, 1997.
....we present an overview of the relevant work in these these areas. The reader seeking foundational information should refer to [CW85] There have been many languages attempting to integrate OOP and FP, the closest to CLOVER being Kea [MHH91] Rapide [MMM91] HOP [DV96] LIFE [AP93] Objective ML [RV96] and Object ML [RR96] A brief survey is contained in [BC96] We note that none of these combine the features we require (inheritance, subsumption and dynamic method despatch from OOP and referential transparency, higher order functions, currying, partial applications and laziness from FP) into ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. Presented at Third International Workshop on Foundations of Object-Oriented Languages (FOOL 3), July 1996. This article was processed using the L A T E X macro package with LLNCS style
....laid the foundations for Objective ML (see next subsection) but unfortunately these foundations are not referentially transparent. 3.4 1996 This year has witnessed an intensifying of interest in the field with several new languages being established, including our language CLOVER. Objective ML [RV96] is implemented on top of Caml Special Light and is an extension of ML with objects, top level classes, multiple inheritance, methods returning self, binary methods and parametric classes. Object ML [RR96] extends ML with objects, subtyping and heterogeneous collections. CLAIRE [CL96] is a ....
Remy, D., Vouillon, J.: Objective ML: A simple object-oriented extension of ML. In Proc. 3rd FOOL, (1996)
....to the internal representations. Information about the names of private fields and methods, however, is still exposed. Their account is in some sense more fundamental than ours: our calculus directly supports hiding, and does not attempt to describe it in more basic concepts. Remy and Vouillon [23] consider a more direct account of private data in classes, but only as inlined constant values. In addition to not matching a standard implementation, their approach does not extend well to mutable fields in the presence of object cloning or functional update of objects. Eiffel [19] has ....
D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 40--53. ACM Press, 1997.
....there were a number of notable attempts at integration, plus extensions of previous systems. However, OBJ [GWM93] has no higher order programming facilities, ST T [DY94] is first order and strict, and the key remaining languages, including Object ML [RR96] Caml Special Light [Ler95] Objective ML [RV96] and CLAIRE [CL96] are not referentially transparent. 2.2 Visual Object Oriented Functional Programming The functional paradigm is often chosen as the underlying computational model for VP because its simple semantics can be realised elegantly in standard data flow notation. Examples of visual ....
D. Remy, J. Vouillon. Objective ML: A simple object-oriented extension of ML. Presented at 3rd FOOL Conf. (1996)
....objects and classes have been settled (e.g. that classes are second class entities separate from modules, providing for object construction and some sort of visibility control) the specifics has not been finalized. The ongoing development of the class systems in MOBY [14, 15] and Objective Caml [39] provide possible approaches. Participants in the ML2000 Working Group include Andrew W. Appel (Princeton University) Luca Cardelli (Microsoft Research) Karl Crary (Carnegie Mellon University) Kathleen Fisher (AT T Labs Research) Carl Gunter (University of Pennsylvania) Robert Harper ....
....functors into more dynamic entities, which changes the character of the module system. For convenience, therefore, ML2000 will have a modest class mechanism to support convenient object oriented programming while minimizing the amount of new mechanism involved. The MOBY [15] and Objective Caml [39] class mechanisms provide example of this approach. Both provide class mechanisms for code inheritance and object creation. Both take advantage of the module system to provide functionality. For example, parameterized classes can be implemented using functors. The semantics of MOBY also uses ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Conference Record of the Twenty-Fourth Annual ACM Symposium on Principles of Programming Languages, pages 40--53. ACM, 1997.
....unless supplemented by a region (aliasing) analysis. 4.4 Objects and classes Because our system already uses recursive types, OCamlstyle objects do not add significant complexity to our framework. We just need to extend the type algebra with object types, that is, polymorphic records of methods [24]. The type of each method is annotated by its latent effect. No extension to rows and row elements are needed. Since there are no object patterns in pattern matching, pattern subtraction needs not be modified. The OCaml class language interferes very little with the exception analysis. No ....
.... precision, one could use techniques based on conjunctive types such as [25] Other issues with functors are still unclear, such as 3 This might cause performance problems in conjunction with OCaml objects, which relies intensively on type abbreviations to make type expressions more manageable [24]. If this turns out to be a problem, we could also handle abbreviations by adding extra row parameters to the type constructors, as described in [4] and in section 4.1.3. the generativity of exception declaration in functor bodies, and the impact of the exception polymorphism offered by ....
D. R'emy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In 24th symp. Principles of Progr. Lang., pages 40--53. ACM Press, 1997.
.... notion of module is independent from that of class and that concrete benefits can be obtained from the point of view of software extensibility by keeping these two notions separated [26] for instance, Modula 3 provides both the notion of object and module, and in Oberon 2 and in Objective Caml [24] modules can contain class definitions. On the other hand, to our knowledge, this topic has not been considered yet from the point of view of theoretical foundations. A different research direction consists in the development of a calculus for the MIX(FL) language enjoying properties like strong ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Proc. 24th ACM Symp. on Principles of Programming Languages, pages 40--53. ACM Press, 1997.
No context found.
D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 40--53. ACM Press, 1997.
No context found.
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension of ML. In Proc. 24th ACM Symp. on Principles of Programming Languages, pages 40--53. ACM Press, January 1997.
No context found.
D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Symposium on Principles of Programming Languages, pages 40--53, 1997.
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