Advertisement

Integrating subtyping, matching and type quantification: A practical perspective

  • Andreas Gawecki
  • Florian Matthes
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1098)

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.

Keywords

Object Type Type Rule Binary Method Concrete Syntax Matching Relation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi and Cardelli 1995.
    Abadi, M. and Cardelli, L. On Subtyping and Matching. In Proceedings ECOOP'95. Springer-Verlag, 1995.Google Scholar
  2. Albano et al. 1994
    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 1996.
    Atkinson, M.P. Fully Integrated Data Environments. Springer-Verlag (to appear), 1996.Google Scholar
  4. Birell et al. 1993
    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 and Hutchinson 1990.
    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 et al. 1988
    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 and Griswold 1993.
    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 et al. 1995a
    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 et al. 1995b
    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 1994.
    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 et al. 1989
    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 and Longo 1991.
    Cardelli, L. and Longo, G. A semantic basis for Quest. Journal of Functional Programming, 1(4):417–458, October 1991.MathSciNetCrossRefzbMATHGoogle Scholar
  13. Cardelli et al. 1991
    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 et al. 1994
    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 1989.
    Cardelli, L. Typeful programming. Technical Report 45, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, May 1989.Google Scholar
  16. Cardelli 1993.
    Cardelli, L. An implementation of F:. Technical Report 97, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, February 1993.Google Scholar
  17. Castagna 1994.
    Castagna, G. Covariance and contravariance: conflict without a cause. Technical Report liens-94-18, LIENS, October 1994.Google Scholar
  18. Chambers and Leavens 1994.
    Chambers, Craig and Leavens, Gary T. Typechecking and modules for multi-methods. In Proceedings OOPSLA '94, volume 29, pages 1–15, October 1994.CrossRefGoogle Scholar
  19. Chambers and Ungar 1991.
    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 1993.
    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 et al. 1994
    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 and Stroustrup 1990.
    Ellis, M.A. and Stroustrup, B. The Annotated C++ Reference Manual. Addison-Wesley Publishing Company, 1990.Google Scholar
  23. Gawecki and Matthes 1996.
    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 1992.
    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. Ghelii 1991.
    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 1990.
    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 and Robson 1983.
    Goldberg, Adele and Robson, David. Smalltalk 80: the Language and its Implementation. Addison-Wesley, May 1983.Google Scholar
  28. Hewitt 1977.
    Hewitt, C. Viewing control structures as patterns of passing messages. Artificial Intelligence, 8:323–364, 1977.CrossRefGoogle Scholar
  29. Höhle 1994.
    Hölzle, U. Adaptive Optimization for Self: Reconciling high performance with Exploratory Programming. PhD thesis, Stanford University, August 1994.Google Scholar
  30. Hutchinson 1987.
    Hutchinson, Norman C. Emerald: An Object-Based Language for Distributed Programming. PhD thesis, University of Washington, September 1987.Google Scholar
  31. Johnson and Foote 1988.
    Johnson, Ralph E. and Foote, Brian. Designing reusable classes. Journal of Object-Oriented Programming, 1(2), 1988.Google Scholar
  32. Matthes and Schmidt 1992.
    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 1988.
    Meyer, B. Object-oriented Software Construction. International Series in Computer Science. Prentice Hall, Englewood Cliffs, New Jersey, 1988.Google Scholar
  34. Meyer 1989.
    Meyer, B. Static typing for Eiffel. (Technical report distributed with Eiffel Release 2), July 1989.Google Scholar
  35. Meyer 1990.
    Meyer, B. Lessons from the design of the eiffel libraries. Communications of the ACM, 33(9):69–88, September 1990.CrossRefGoogle Scholar
  36. Milner 1990.
    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 1991.
    Nelson, G., editor. Systems programming with Modula-3. Series in innovative technology. Prentice Hall, Englewood Cliffs, New Jersey, 1991.Google Scholar
  38. Pierce and Turner 1993.
    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 1994.
    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).zbMATHMathSciNetCrossRefGoogle Scholar
  40. Ungar and Smith 1987.
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Andreas Gawecki
    • 1
  • Florian Matthes
    • 1
  1. 1.Universität HamburgHamburgGermany

Personalised recommendations