Skip to main content

Subtyping is not a good “match” for object-oriented languages

  • Conference paper
  • First Online:
ECOOP'97 — Object-Oriented Programming (ECOOP 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1241))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Martin Abadi and Luca Cardelli. On subtyping and matching. In Proceedings ECOOP '95, pages 145–167, 1995.

    Google Scholar 

  2. Ken Arnold and James Gosling. Java. Addison Wesley, 1996.

    Google Scholar 

  3. 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.

    Article  Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Article  MATH  MathSciNet  Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471–522, 1985.

    Article  Google Scholar 

  11. Mark Day, Robert Gruber, Barbara Liskov, and Andrew C. Meyers. Abstraction mechanisms in Theta. Technical report, MIT Laboratory for Computer Science, 1994.

    Google Scholar 

  12. Margaret A. Ellis and Bjarne Stroustrop. The annotated C++ reference manual. Addison-Wesley, 1990.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Intermetrics. Ada 95 Reference Manual, version 6.0. 1995.

    Google Scholar 

  15. Mark P. Jones. Using parameterized signatures to express modular structure. In 23rd ACM Symp. Principles of Programming Languages, pages 68–78, 1996.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. Wilf LaLonde and John Pugh. Subclassing ⊋ subtyping ⊋ is-a. Journal of Object-Oriented Programming, pages 57–62, January 1991.

    Google Scholar 

  19. B. Meyer. Eiffel: the language. Prentice-Hall, 1992.

    Google Scholar 

  20. 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.

    Article  Google Scholar 

  21. 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.

    Article  Google Scholar 

  22. Leaf Petersen. A module system for LOOM. Williams College Senior Honors Thesis, 1996.

    Google Scholar 

  23. Benjamin C. Pierce. Bounded quantification is undecidable. In Proc 19th ACM Symp. Principles of Programming Languages, pages 305–315, 1992.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. L. Tesler. Object Pascal report. Technical Report 1, Apple Computer, 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mehmet Akşit Satoshi Matsuoka

Rights and permissions

Reprints 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

Publish with us

Policies and ethics