Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Class-is-type is inadequate for object reuse

Published: 01 June 2001 Publication History

Abstract

It is well known that class and type are two different concepts in object-oriented programming languages (OOPLs). However, in many popular OOPLs, classes are used as types. In this paper, we argue that the class-is-type principle is a major obstacle to software reuse, especially to object reuse. The concepts of the basic entities, i.e., objects, object classes, object types, and object kinds, in the type hierarchy of OOPLs are revisited. The notion of object reuse is defined and elaborated. In addition, we show that parameterized types and generic functions are better served by used kind-bounded quantification than universal quantification and other mechanisms.

References

[1]
M. Abadi and L. Cardelli, A theory of objects, Springer, New York, 1996.
[2]
Ada 9X mapping/revision team, Ada 9X rationale, Intermetrics, Inc., 8 June 1994.
[3]
K. Arnold and J. Gostling, The Java programming language, Adddison-Wesley, 1996.
[4]
J.G.P. Barnes, Programming in Ada, Addison-Wesley Publishing Company, 1989.
[5]
G. Baumgartner and V.F. Russo, A C++ extension for types abstraction and subtype polymorphism, Tech report CSD-TR-93-059, Dept. of Computer Science, Purdue Univ., Sept. 1993.
[6]
G. Blaschek, "Type-safe OOP with prototypes: the concept of Omega", Structured programming 12(12) (1991) 1-9.
[7]
R. Breu, Algebraic specification techniques in object oriented programming environments, Lecture Notes in Computer Science, 562, 1991.
[8]
K.B. Bruce and G. Longo, "A modest model of records, inheritance, and bounded quantification", Information and Computation, 87(1990) 196-240.
[9]
K.B. Bruce, A.R. Meyer, and J.C. Mitchell, "The semantics of second-order Lambda calculus", Information and computation, 85(1990) 76-134.
[10]
L. Cardelli, Typeful programming, Formal description of programming concepts---IFIP state-of-art report, 431-507, Springer-Verlag, 1991.
[11]
C. Chambers, "The Cecil language specification and rationale", Technical report 93-03-05, Univ. of Washington, Dept. of Comuter Science and Engineering, 1993.
[12]
W. Cook, W. Hill, and P. Canning, "Inheritance is not subtyping", Proc. of the 17th Annual Sympos. on Principles of Programming Languages 125-135, 1990.
[13]
W. Cook, W. Hill, W. Olthoff, and J. Mitchell, "F-bounded polymorphism for object-oriented programming", Proc. 4th Internat. Conf. on Functional Programming Languages and Computer Architecture, 273-280, 1989.
[14]
I. Craig, The interpretation of object-oriented programming languages, Springer, London, 2000.
[15]
J. Donahue and A. Demers, Data types are values, ACM Trans. on Programming Languages and Systems, 7(3) 426-445, July 1985.
[16]
K. Futatsugi, J.A. Goguen, J.-P. Jouannaud, J. Meseguer, Principles of OBJ2, Proc. of the 12th POPL, 52-66, 1985.
[17]
J.-Y. Girard, Interpretation fonctionelle et élimination des coupures de l'arithmétique d'ordre supéieur, These D'Etat, Univ. Paris VIII, 1972.
[18]
J.V. Guttag, J.J. Horning, The algebraic specification of abstract data types, Programming Methodology, 282-308, Springer-Verlag, 1978.
[19]
B. Liskov, D. Curtis, M. Day, S. Chemawat, R. Gruber, P. Johnson, and A.C. Myers, Theta reference manual---preliminary version, MIT Laboratory for Comptuer Science, Cambridge 1995.
[20]
B. Liskov, J. Guttag, Abstraction and specification in program development, The MIT Press, 1986.
[21]
G.D. MacQueen and R. Sethi, A semantic model of types for applicative languages, ACM Symp. on Lisp and Functional Programming, 243-252, 1982.
[22]
N. McCracken, An investigation of a programming language with a polymorphic type structure, Ph.D thesis, Syracuse Univ., 1979.
[23]
B. Meyer, Eiffle: The language, Prentice Hall, 1992.
[24]
G. Nelson, Systems programming with Modula-3, Prentice Hall, Englewood, 1991.
[25]
J. Noble, A. Taivalsaari, and I. Moore eds., Prototype-based programming, Springer, Singapore, 1999.
[26]
P. Scheyen, S. Yu, M. Zhang, and Q. Zhuang. Introducing KINDS to C++, Technical report 366, Dept. of Computer Science, The Univ. of Western Ontario, 1993.
[27]
P. Scheyen, C++ constructs for generic functions and classes, Master thesis, Dept. of Computer Science, The Univ. of Western Ontario, 1994.
[28]
L.A. Stein, H. Lieberman, and D. Ungar, "A shared view of sharing: the treaty of Orlando", Object-oriented concepts, applications, and databases, W. Kim and F. Lockowsky, eds., 1988, 31-48.
[29]
B. Stroupstrup, The C++ programming language---special edition, Addison-Wesley, Reading, MA, 2000.
[30]
C. Szyperski, Component software---beyond object-oriented programming, Addison-Wesley, Hoalow, England, 1997.
[31]
D. Ungar and R.B. Smith, "Self: the power of simplicity", Lisp and Symbolic Computation 4(3) (1991) 187-205.
[32]
S. Yu and Q. Zhuang, "Algorithmic abstraction in object-oriented languages", Journal of Object-Oriented Systems 2 (1995) 217-236.
[33]
S. Yu and Q. Zhuang, "Software reuse via algorithm abstraction", Proc. of the 17th Internat. Conf. on Technology of Object-Oriented Languages and Systems (TOOLS), 277-292, 1995.
[34]
S. Yu and Q. Zhuang, On parametric polymorphism in object-oriented languanges, Technical report 378, Dept. of Computer Science, The Univ. of Western Ontario, 1993.
[35]
Q. Zhuang, Algorithm abstraction via polymorphism in object-oriented languages, Ph.D. thesis (in preparation), Dept. of Computer Science, The Univ. of Western Ontario, 1995.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 36, Issue 6
June 2001
38 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/504359
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 2001
Published in SIGPLAN Volume 36, Issue 6

Check for updates

Author Tags

  1. class-is-type principle
  2. classes
  3. generic functions
  4. kind-bounded polymorphism
  5. kinds
  6. object reuse
  7. objects
  8. parameterized types
  9. types

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media