Integrating subtyping, matching and type quantification: A practical perspective
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.
KeywordsObject Type Type Rule Binary Method Concrete Syntax Matching Relation
Unable to display preview. Download preview PDF.
- Abadi and Cardelli 1995.Abadi, M. and Cardelli, L. On Subtyping and Matching. In Proceedings ECOOP'95. Springer-Verlag, 1995.Google Scholar
- Albano et al. 1994Albano, 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
- Atkinson 1996.Atkinson, M.P. Fully Integrated Data Environments. Springer-Verlag (to appear), 1996.Google Scholar
- Birell et al. 1993Birell, 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
- 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
- Bobrow et al. 1988Bobrow, 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
- 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
- Bruce et al. 1995aBruce, 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
- Bruce et al. 1995bBruce, 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
- 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
- Canning et al. 1989Canning, 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
- Cardelli and Longo 1991.
- Cardelli et al. 1991Cardelli, 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
- Cardelli et al. 1994Cardelli, 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
- Cardelli 1989.Cardelli, L. Typeful programming. Technical Report 45, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, May 1989.Google Scholar
- Cardelli 1993.Cardelli, L. An implementation of F:. Technical Report 97, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, February 1993.Google Scholar
- Castagna 1994.Castagna, G. Covariance and contravariance: conflict without a cause. Technical Report liens-94-18, LIENS, October 1994.Google Scholar
- Chambers and Leavens 1994.
- 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
- 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
- Eifrig et al. 1994Eifrig, 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
- Ellis and Stroustrup 1990.Ellis, M.A. and Stroustrup, B. The Annotated C++ Reference Manual. Addison-Wesley Publishing Company, 1990.Google Scholar
- 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
- 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
- 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
- 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
- Goldberg and Robson 1983.Goldberg, Adele and Robson, David. Smalltalk 80: the Language and its Implementation. Addison-Wesley, May 1983.Google Scholar
- Hewitt 1977.
- Höhle 1994.Hölzle, U. Adaptive Optimization for Self: Reconciling high performance with Exploratory Programming. PhD thesis, Stanford University, August 1994.Google Scholar
- Hutchinson 1987.Hutchinson, Norman C. Emerald: An Object-Based Language for Distributed Programming. PhD thesis, University of Washington, September 1987.Google Scholar
- Johnson and Foote 1988.Johnson, Ralph E. and Foote, Brian. Designing reusable classes. Journal of Object-Oriented Programming, 1(2), 1988.Google Scholar
- 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
- Meyer 1988.Meyer, B. Object-oriented Software Construction. International Series in Computer Science. Prentice Hall, Englewood Cliffs, New Jersey, 1988.Google Scholar
- Meyer 1989.Meyer, B. Static typing for Eiffel. (Technical report distributed with Eiffel Release 2), July 1989.Google Scholar
- Meyer 1990.
- 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
- Nelson 1991.Nelson, G., editor. Systems programming with Modula-3. Series in innovative technology. Prentice Hall, Englewood Cliffs, New Jersey, 1991.Google Scholar
- 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
- 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
- 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