Skip to main content

Integrating subtyping, matching and type quantification: A practical perspective

  • Conference paper
  • First Online:
ECOOP ’96 — Object-Oriented Programming (ECOOP 1996)

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

Included in the following conference series:

Abstract

We report on our experience gained in designing, implementing and using a strongly-typed persistent programming language (TooL) which integrates object types, subtyping, type matching, and type quantification. Our work complements recent type-theoretical studies of subtyping and type matching by focusing on the issue of how to integrate both concepts into a practical, orthogonal programming language. We also shed some light on the subtle typing issues which we encountered during the construction of a substantial bulk data library where it was necessary to trade-off subtyping against type matching. Our practical experience suggests that the benefits of an integration of subtyping and type matching are achieved at the expense of a significant increase in modeling complexity.

This research is supported by ESPRIT Basic Research, Project FIDE, #6309 and by a grant from the German Israeli Foundation for Research and Development (bulk data classification, I-183 060).

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. Abadi, M. and Cardelli, L. On Subtyping and Matching. In Proceedings ECOOP'95. Springer-Verlag, 1995.

    Google Scholar 

  2. Albano, A., Ghelli, G., and Orsini, R. Fibonacci reference manual: A preliminary version. FIDE Technical Report Series FIDE/94/102, FIDE Project Coordinator, Department of Computing Sciences, University of Glasgow, Glasgow G128QQ, 1994.

    Google Scholar 

  3. Atkinson, M.P. Fully Integrated Data Environments. Springer-Verlag (to appear), 1996.

    Google Scholar 

  4. Birell, A., Nelson, G., Owicki, S., and Wobber, E. Network objects. In 14th ACM Symposium on Operating System Principles, pages 217–230, June 1993.

    Google Scholar 

  5. Black, Andrew P. and Hutchinson, Norman C. Typechecking polymorphism in Emerald. Technical Report TR 90-34, Dept. of Computer Science, University of Arizona, December 1990.

    Google Scholar 

  6. Bobrow, D.G., De Michiel, L.G., Gabriel, R.P., Keene, S.E., Kiczales, G., and Moon, D.A. Common lisp object system specification. ACM SIGPLAN Notices, 23, September 1988.

    Google Scholar 

  7. Bracha, Gilad and Griswold, David. Strongtalk: typechecking Smalltalk in a production environment. In Proceedings OOPSLA '93, pages 215–230, October 1993.

    Google Scholar 

  8. Bruce, K.B., Cardelli, L., Castagna, G., The Hopkins Object Group, Leavens, G.T., and Pierce, B. On binary methods. Technical report, DEC SRC Research Report, 1995.

    Google Scholar 

  9. Bruce, K.B., Schuett, A., and Gent, R. van. PolyTOIL: a type-safe polymorphic object-oriented language. In Proceedings ECOOP'95. Springer-Verlag, 1995.

    Google Scholar 

  10. Bruce, Kim B. A paradigmatic object-oriented programming language: Design, static typing and semantics. Journal of Functional Programming, 4(2), April 1994.

    Google Scholar 

  11. Canning, P.S., Cook, W.R., Hill, W.L., and Olthoff, W. F-bounded polymorphism for object-oriented programming. In Proceedings of Conference on Functional Proramming Languages and Computer Architecture (FPCA '89), Imperial College, London, pages 273–280, September 1989.

    Google Scholar 

  12. Cardelli, L. and Longo, G. A semantic basis for Quest. Journal of Functional Programming, 1(4):417–458, October 1991.

    Article  MathSciNet  MATH  Google Scholar 

  13. Cardelli, L., Martini, S., Mitchell, J.C., and Scedrov, A. An extension of system F with subtyping. In Ito, T. and Meyer, A.R., editors, Theoretical Aspects of Computer Software, TACS'91, Lecture Notes in Computer Science, pages 750–770. Springer-Verlag, 1991.

    Google Scholar 

  14. Cardelli, L., Matthes, F., and Abadi, M. Extensible grammars for language specialization. In Beeri, C, Ohori, A., and Shasha, D.E., editors, Proceedings of the Fourth International Workshop on Database Programming Languages, Manhatten, New York, Workshops in. Computing, pages 11–31. Springer-Verlag, February 1994.

    Google Scholar 

  15. Cardelli, L. Typeful programming. Technical Report 45, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, May 1989.

    Google Scholar 

  16. Cardelli, L. An implementation of F:. Technical Report 97, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, February 1993.

    Google Scholar 

  17. Castagna, G. Covariance and contravariance: conflict without a cause. Technical Report liens-94-18, LIENS, October 1994.

    Google Scholar 

  18. Chambers, Craig and Leavens, Gary T. Typechecking and modules for multi-methods. In Proceedings OOPSLA '94, volume 29, pages 1–15, October 1994.

    Article  Google Scholar 

  19. Chambers, C. and Ungar, D. Making pure object-oriented languages practical. In Proceedings of the Object-Oriented Programming Systems, Languages and Applications Conference, Phoenix, Arizona, pages 1–15, October 1991.

    Google Scholar 

  20. Chambers, C. Object-oriented multi-methods in Cecil. In Proceedings of the ECOOP'92 Conference, Uetrecht, the Netherlands, pages 33–56. Springer-Verlag, July 1993.

    Google Scholar 

  21. Eifrig, J., Smith, S., Trifonov, V., and Zwarico, A. Application of OOP type theory: State, decidability, integration. In Proceedings OOPSLA '94, pages 16–30, October 1994.

    Google Scholar 

  22. Ellis, M.A. and Stroustrup, B. The Annotated C++ Reference Manual. Addison-Wesley Publishing Company, 1990.

    Google Scholar 

  23. Gawecki, A. and Matthes, F. Exploiting persistent intermediate code representations in open database environments. In Proceedings of the 5th Conference on Extending Database Technology, EDBT'96, Avignon, France, March 1996. (to appear).

    Google Scholar 

  24. Gawecki, A. An optimizing compiler for Smalltalk. Bericht FBI-HH-B-152/92, Fachbereich Informatik, Universität Hamburg, Germany, September 1992. In German.

    Google Scholar 

  25. Ghelli, G. A static type system for message passing. In Proceedings of the Object-Oriented Programming Systems, Languages and Applications Conference, Phoenix, Arizona, pages 129–145, 1991.

    Google Scholar 

  26. Goguen, J.A. Higher-order functions considered unnecessary for higher-order programming. In Turner, D., editor, Research Topics in Functional Programming, pages 309–351. Addison-Wesley Publishing Company, 1990.

    Google Scholar 

  27. Goldberg, Adele and Robson, David. Smalltalk 80: the Language and its Implementation. Addison-Wesley, May 1983.

    Google Scholar 

  28. Hewitt, C. Viewing control structures as patterns of passing messages. Artificial Intelligence, 8:323–364, 1977.

    Article  Google Scholar 

  29. Hölzle, U. Adaptive Optimization for Self: Reconciling high performance with Exploratory Programming. PhD thesis, Stanford University, August 1994.

    Google Scholar 

  30. Hutchinson, Norman C. Emerald: An Object-Based Language for Distributed Programming. PhD thesis, University of Washington, September 1987.

    Google Scholar 

  31. Johnson, Ralph E. and Foote, Brian. Designing reusable classes. Journal of Object-Oriented Programming, 1(2), 1988.

    Google Scholar 

  32. Matthes, F. and Schmidt, J.W. Definition of the Tycoon Language TL — a preliminary report. Informatik Fachbericht FBI-HH-B-160/92, Fachbereich Informatik, Universität Hamburg, Germany, November 1992.

    Google Scholar 

  33. Meyer, B. Object-oriented Software Construction. International Series in Computer Science. Prentice Hall, Englewood Cliffs, New Jersey, 1988.

    Google Scholar 

  34. Meyer, B. Static typing for Eiffel. (Technical report distributed with Eiffel Release 2), July 1989.

    Google Scholar 

  35. Meyer, B. Lessons from the design of the eiffel libraries. Communications of the ACM, 33(9):69–88, September 1990.

    Article  Google Scholar 

  36. Milner et al. 1990: Milner, R., Tofte, M., and Harper, R. The Definition of Standard ML. MIT Press, Cambridge, Massachusetts, 1990.

    Google Scholar 

  37. Nelson, G., editor. Systems programming with Modula-3. Series in innovative technology. Prentice Hall, Englewood Cliffs, New Jersey, 1991.

    Google Scholar 

  38. Pierce, B.C. and Turner, D.N. Statically typed friendly functions via partially abstract types. Rapport de Recherche 1899, INRIA, Domaine de Voluceau Rocquencourt 78153 Le Chesnay Cedex — France, May 1993.

    Google Scholar 

  39. Pierce, B. C. Bounded quantification is undecidable. Information and Computation, 112(1):131–165, July 1994. Also in Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design (MIT Press, 1994).

    Article  MATH  MathSciNet  Google Scholar 

  40. Ungar, D. and Smith, R.B. Self: The power of simplicity. In Proceedings of the Object-Oriented Programming Systems, Languages and Applications Conference, Orlando, Florida, pages 227–242, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pierre Cointe

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gawecki, A., Matthes, F. (1996). Integrating subtyping, matching and type quantification: A practical perspective. In: Cointe, P. (eds) ECOOP ’96 — Object-Oriented Programming. ECOOP 1996. Lecture Notes in Computer Science, vol 1098. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053055

Download citation

  • DOI: https://doi.org/10.1007/BFb0053055

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61439-5

  • Online ISBN: 978-3-540-68570-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics