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).
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M. and Cardelli, L. On Subtyping and Matching. In Proceedings ECOOP'95. Springer-Verlag, 1995.
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.
Atkinson, M.P. Fully Integrated Data Environments. Springer-Verlag (to appear), 1996.
Birell, A., Nelson, G., Owicki, S., and Wobber, E. Network objects. In 14th ACM Symposium on Operating System Principles, pages 217–230, June 1993.
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.
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.
Bracha, Gilad and Griswold, David. Strongtalk: typechecking Smalltalk in a production environment. In Proceedings OOPSLA '93, pages 215–230, October 1993.
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.
Bruce, K.B., Schuett, A., and Gent, R. van. PolyTOIL: a type-safe polymorphic object-oriented language. In Proceedings ECOOP'95. Springer-Verlag, 1995.
Bruce, Kim B. A paradigmatic object-oriented programming language: Design, static typing and semantics. Journal of Functional Programming, 4(2), April 1994.
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.
Cardelli, L. and Longo, G. A semantic basis for Quest. Journal of Functional Programming, 1(4):417–458, October 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.
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.
Cardelli, L. Typeful programming. Technical Report 45, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, May 1989.
Cardelli, L. An implementation of F:. Technical Report 97, Digital Equipment Corporation, Systems Research Center, Palo Alto, California, February 1993.
Castagna, G. Covariance and contravariance: conflict without a cause. Technical Report liens-94-18, LIENS, October 1994.
Chambers, Craig and Leavens, Gary T. Typechecking and modules for multi-methods. In Proceedings OOPSLA '94, volume 29, pages 1–15, October 1994.
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.
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.
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.
Ellis, M.A. and Stroustrup, B. The Annotated C++ Reference Manual. Addison-Wesley Publishing Company, 1990.
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).
Gawecki, A. An optimizing compiler for Smalltalk. Bericht FBI-HH-B-152/92, Fachbereich Informatik, Universität Hamburg, Germany, September 1992. In German.
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.
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.
Goldberg, Adele and Robson, David. Smalltalk 80: the Language and its Implementation. Addison-Wesley, May 1983.
Hewitt, C. Viewing control structures as patterns of passing messages. Artificial Intelligence, 8:323–364, 1977.
Hölzle, U. Adaptive Optimization for Self: Reconciling high performance with Exploratory Programming. PhD thesis, Stanford University, August 1994.
Hutchinson, Norman C. Emerald: An Object-Based Language for Distributed Programming. PhD thesis, University of Washington, September 1987.
Johnson, Ralph E. and Foote, Brian. Designing reusable classes. Journal of Object-Oriented Programming, 1(2), 1988.
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.
Meyer, B. Object-oriented Software Construction. International Series in Computer Science. Prentice Hall, Englewood Cliffs, New Jersey, 1988.
Meyer, B. Static typing for Eiffel. (Technical report distributed with Eiffel Release 2), July 1989.
Meyer, B. Lessons from the design of the eiffel libraries. Communications of the ACM, 33(9):69–88, September 1990.
Milner et al. 1990: Milner, R., Tofte, M., and Harper, R. The Definition of Standard ML. MIT Press, Cambridge, Massachusetts, 1990.
Nelson, G., editor. Systems programming with Modula-3. Series in innovative technology. Prentice Hall, Englewood Cliffs, New Jersey, 1991.
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.
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).
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.
Author information
Authors and Affiliations
Editor information
Rights 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