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.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Roberto M. Amadio and Luca Cardelli. Subtyping recursive types. In Proceedings of the Eighteenth ACM Symposium on Principles of Programming Languages, pages 104–118, Orlando, FL, January 1991. Also available as DEC Systems Research Center Research Report number 62, August 1990.
Martin Abadi and Luca Cardelli. A theory of primitive objects. In International Symposium on Theoretical Aspects of Computer Software, April 1994.
Alexander Aiken. Type inclusion constraints and type inference. In Conference on Functional Programming Languages and Computer Architecture, pages 31–41. ACM press, 1993.
Bernard Berthomieu. Programming with behaviors in an ML framework, the syntax and semantics of lcs. Research Report 93-133, LAAS-CNRS, 7, Avenue du Colonnel Roche, 31077 Toulouse, France, March 1993.
Kim B. Bruce. Safe type checking in a statically typed object-oriented programming language. In Proceedings of the Twentieth ACM Symposium on Principles of Programming Languages, January 1993.
Luca Cardelli. A semantics of multiple inheritance. In Semantics of Data Types, volume 173 of Lecture Notes in Computer Science, pages 51–68. Springer Verlag, 1984. Also in Information and Computation, 1988.
Lucky Chillan. Une extension de ML avec des aspects orientés objets. Thèse de doctorat, Université de Paris 7, Place Jussieu, Paris, France, 1993. Forthcoming.
Luca Cardelli and John C. Mitchell. Operations on records. In Fifth International Conference on Mathematical Foundations of Programming Semantics, 1989.
Roberto Di Cosmo. Deciding type isomorphisms in a type assignment framework. Journal of Functional Programming, 1992. To appear in the Special Issue on ML.
Roberto Di Cosmo. Isomorphisms of Types. Tesi di dottorato, Dipartimento di Informatica, Universitá di Pisa, 40, Corso Italia-56100 Pisa-Italy, January 1993.
Carl Gunter, Didier Rémy, and John Riecke. Syntactic type soundness with prompt, callcc and state. Manuscript, 1993.
Andreas V. Hense. An O'small interpreter based on denotational semantics. Technical Report A 07/91, Universitiat des Saarlandes, Fachbereich 14, 1991.
Andreas V. Hense. Wrapper semantics of an object oriented programming language with state. Theoretical Aspects of Computer Science, Lecture notes in Computer Science(526), September 1991.
Robert Harper, Robin Milner, and Mads Tofte. The definition of Standard ML. The MIT Press, 1991.
Robert W. Harper and Benjamin C. Pierce. Extensible records without subsumption. Technical Report CMU-CS-90-102, Carnegie Mellon University, Pittsburg, Pensylvania, February 1990.
Martin Hofmann and Benjamin Pierce. An abstract view of objects and subtyping (preliminary report). Technical Report ECS-LFCS-92-226, University of Edinburgh, LFCS, 1992.
Gérard Huet. Résolution d'équations dans les langages d'ordre 1,2, ...,ω. Thèse de doctorat d'état, Université Paris 7, 1976.
Lalita A. Jategaonkar and John C. Mitchell. ML with extended pattern matching and subtypes (preliminary version). In Proceedings of the ACM Conference on Lisp and Functional Programming, pages 198–211, Snowbird, Utah, July 1988.
Konstantin Läufer. Polymorphic Type Inference and Abstract Data Types. PhD thesis, New York University, 1992.
Xavier Leroy and Michel Mauny. The caml light system, version 0.5. documentation and users' guide. Logiciel 3, INRIA-Rocquencourt, BP 105, F-78 153 Le Chesnay Cedex, 1992.
Konstantin Läufer and Martin Odersky. An extension of ML with first-class abstract types. In Proceedings of the ACM SIGPLAN Workshop on ML and its Applications, 1992.
John C. Mitchell, Furio Honsell, and Kathleen Fisher. A lambda calculus of objects and method specialization. In 1993 IEEE Symposium on Logic in Computer Science, June 1993.
Alberto Martelli and Ugo Montanari. An efficient unification algorithm. ACM Transactions on Programming Languages and Systems, 4(2):258–282, 1982.
Atsushi Ohori and Peter Buneman. Type inference in a database langage. In ACM Conference on LISP and Functional Programming, pages 174–183, 1988.
Atsushi Ohori. Extending ML polymorphism to record structure. Technical report, University of Glasgow, 1990.
Benjamin C. Pierce. Mutable objects. Unpublished note, June 1993.
Benjamin C. Pierce and David N. Turner. Object-oriented programming without recursive types. In Proceedings of the Twentieth ACM Symposium on Principles of Programming Languages, January 1993.
Didier Rémy. Extending ML type system with a sorted equational theory. Research Report 1766, Institut National de Recherche en Informatique, BP 105, F-78 153 Le Chesnay Cedex, 1992.
Didier Rémy. Projective ML. In 1992 ACM Conference on Lisp and Functional Programming, pages 66–75, New-York, 1992. ACM press.
Didier Rémy. Syntactic theories and the algebra of record terms. Research Report 1869, Institut National de Recherche en Informatique, BP 105, F-78 153 Le Chesnay Cedex, 1993.
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 ObjectOriented Programming. Types, Semantics and Language Design. MIT Press, 1993. To appear.
Didier Rémy. Typing record concatenation for free. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993. To appear.
Mitchell Wand. Complete type inference for simple objects. In D. Gries, editor, Second Symposium on Logic In Computer Science, pages 207–276, Ithaca, New York, June 1987. IEEE Computer Society Press.
Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. Technical Report TR91-160, Rice University, 1991.
Andrew K. Wright. Polymorphism for imperative languages without imperative types. Technical Report 93-200, Rice University, February 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rémy, D. (1994). Programming objects with ML-ART an extension to ML with abstract and record types. In: Hagiya, M., Mitchell, J.C. (eds) Theoretical Aspects of Computer Software. TACS 1994. Lecture Notes in Computer Science, vol 789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57887-0_102
Download citation
DOI: https://doi.org/10.1007/3-540-57887-0_102
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57887-1
Online ISBN: 978-3-540-48383-0
eBook Packages: Springer Book Archive