Abstract
We present the design and rationale of a new statically-typed object-oriented language, LOOM. LOOM, retains most of the features of the earlier language PolyTOIL. However the subtyping relation is dropped from LOOM in favor of the matching relation. “Hash types”, which are denned in terms of matching, are introduced to provide some of the benefits of subtyping. These types can be used to provide support for heterogeneous data stuctures in LOOM. LOOM. is considerably simpler than PolyTOIL, yet is just as expressive. The type system for the language is decidable and provably type safe. The addition of modules to the language provides better control over information hiding and allows the provision of access like that of C++'s friends.
Bruce and Petersen's research was partially supported by NSF grant CCR-9424123. Fiech's research was partially supported by NSERC grant OGP0170497.
Preview
Unable to display preview. Download preview PDF.
References
Martin Abadi and Luca Cardelli. On subtyping and matching. In Proceedings ECOOP '95, pages 145–167, 1995.
Ken Arnold and James Gosling. Java. Addison Wesley, 1996.
Pierre America and Prank van der Linden. A parallel object-oriented language with inheritance and subtyping. In OOPSLA-ECOOP '90 Proceedings, pages 161–168. ACM SIGPLAN Notices,25(10), October 1990.
Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, The Hopkins Objects Group, Gary T. Leavens, and Benjamin Pierce. On binary methods. Theory and Practice of Object-Oriented Systems, 1996. to appear.
K. Bruce. Safe type checking in a statically typed object-oriented programming language. In Proc. ACM Symp. on Principles of Programming Languages, pages 285–298, 1993.
K. Bruce. A paradigmatic object-oriented programming language: design, static typing and semantics. Journal of Functional Programming, 4(2):127–206, 1994. An earlier version of this paper appeared in the 1993 POPL Proceedings.
Kim B. Bruce, Angela Schuett, and Robert van Gent. PolyTOIL: A type-safe polymorphic object-oriented language, extended abstract. In ECOOP '95, pages 27–51. LNCS 952, Springer-Verlag, 1995.
L. Cardelli, J. Donahue, L. Galssman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 report. Technical Report SRC-31, DEC systems Research Center, 1988.
William R. Cook, Walter L. Hill, and Peter S. Canning. Inheritance is not subtyping. In Proc. 17th ACM Symp. on Principles of Programming Languages, pages 125–135, January 1990.
L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471–522, 1985.
Mark Day, Robert Gruber, Barbara Liskov, and Andrew C. Meyers. Abstraction mechanisms in Theta. Technical report, MIT Laboratory for Computer Science, 1994.
Margaret A. Ellis and Bjarne Stroustrop. The annotated C++ reference manual. Addison-Wesley, 1990.
Andreas Gawecki and Florian Matthes. Integrating subtyping, matching and type quantification: A practical perspective. In ECOOP '96, pages 26–47. LNCS 1098, Springer-Verlag, 1996.
Intermetrics. Ada 95 Reference Manual, version 6.0. 1995.
Mark P. Jones. Using parameterized signatures to express modular structure. In 23rd ACM Symp. Principles of Programming Languages, pages 68–78, 1996.
Dinesh Katiyar, David Luckham, and John Mitchell. A type system for prototyping languages. In 21st ACM Symp. Principles of Programming Languages, pages 138–150, 1994.
Dinesh Katiyar, David Luckham, and John Mitchell. A type system for prototyping languages. In Conference Record of POPL '94: 21st ACM SIGPLAN-SIGACT Symposium of Principles of Programming Languages, Portland, Oregon, pages 138–150. Association for Computing Machinery, January 1994.
Wilf LaLonde and John Pugh. Subclassing ⊋ subtyping ⊋ is-a. Journal of Object-Oriented Programming, pages 57–62, January 1991.
B. Meyer. Eiffel: the language. Prentice-Hall, 1992.
O. Madsen, B. Magnusson, and B. Moller-Pedersen. Strong typing of object-oriented languages revisited. In OOPSLA-ECOOP '90 Proceedings, pages 140–150. ACM SIGPLAN Notices,25(10), October 1990.
J.C. Mitchell and G.D. Plotkin. Abstract types have existential types. ACM Trans, on Programming Languages and Systems, 10(3):470–502, 1988. Preliminary version appeared in Proc. 12th ACM Symp. on Principles of Programming Languages, 1985.
Leaf Petersen. A module system for LOOM. Williams College Senior Honors Thesis, 1996.
Benjamin C. Pierce. Bounded quantification is undecidable. In Proc 19th ACM Symp. Principles of Programming Languages, pages 305–315, 1992.
Benjamin C. Pierce and David N. Turner. Statically typed friendly functions via partially abstract types. Technical Report ECS-LFCS-93-256, University of Edinburgh, 1993.
A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proc. 1st ACM Symp. on Object-Oriented Programming Systems, Languages, and Applications, pages 38–46, October 1986.
L. Tesler. Object Pascal report. Technical Report 1, Apple Computer, 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bruce, K.B., Petersen, L., Fiech, A. (1997). Subtyping is not a good “match” for object-oriented languages. In: Akşit, M., Matsuoka, S. (eds) ECOOP'97 — Object-Oriented Programming. ECOOP 1997. Lecture Notes in Computer Science, vol 1241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053376
Download citation
DOI: https://doi.org/10.1007/BFb0053376
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63089-0
Online ISBN: 978-3-540-69127-3
eBook Packages: Springer Book Archive