|
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
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
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
|
|
| |
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
|
|
| |
8
|
|
| |
9
|
|
| |
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
|
|
 |
13
|
Peter Canning , William Cook , Walter Hill , Walter Olthoff , John C. Mitchell, F-bounded polymorphism for object-oriented programming, Proceedings of the fourth international conference on Functional programming languages and computer architecture, p.273-280, September 11-13, 1989, Imperial College, London, United Kingdom
[doi> 10.1145/99370.99392]
|
| |
14
|
|
 |
15
|
|
 |
16
|
Kokichi Futatsugi , Joseph A. Goguen , Jean-Pierre Jouannaud , José Meseguer, Principles of OBJ2, Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.52-66, January 14-16, 1985, New Orleans, Louisiana, United States
[doi> 10.1145/318593.318610]
|
| |
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
|
|
 |
21
|
|
| |
22
|
|
| |
23
|
|
| |
24
|
|
| |
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
|
Lynn Andrea Stein , Henry Lieberman , David Ungar, A shared view of sharing: the treaty of Orlando, Object-oriented concepts, databases, and applications, ACM Press, New York, NY, 1989
[doi> 10.1145/63320.66470]
|
| |
29
|
|
| |
30
|
|
| |
31
|
|
| |
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
|
|
|