|
ABSTRACT
Designing data types in isolation is fundamentally different from designing them for integration into communities of data types, especially when inheritance is a fundamental issue. Moreover, we can distinguish between the design of families—integrated types that are variations of each other—and more general communities where totally different but cohesive collections of types support specific applications (e.g., a compiler). We are concerned with the design of integrated families of data types as opposed to individual data types; that is, on the issues that arise when the focus is intermediate between the design of individual data types and more general communities of data types. We argue that design at this level is not adequately served by systems providing only class-based inheritance hierarchies and that systems which additionally provide a coupled subtype specification hierarchy are still not adequate. We propose a system that provides an unlimited number of uncoupled specification hi
erarchies and illustrate it with three: a subtype hierarchy, a specialization/generalization hierarchy, and a like hierarchy. We also resurrect a relatively unknown Smalltalk design methodology that we call programming-by-exemplars and argue that it is an important addition to a designer's grab bag of techniques. The methodology is used to show that the subtype hierarchy must be decoupled from the inheritance hierarchy, something that other researchers have also suggested. However, we do so in the context of exemplar-based systems to additionally show that they can already support the extensions required without modification and that they lead to a better separation between users and implementers, since classes and exemplars can be related in more flexible ways. We also suggest that class-based systems need the notion of private types if they are to surmount their current limitations. Our points are made in the guise of designing a family of List data types. Among these is a new variety of lists that have
never been previously published: prefix-sharing lists. We also argue that there is a need for familial classes to serve as an intermediary between users and the members of a family.
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
|
|
 |
3
|
Andrew Black , Norman Hutchinson , Eric Jul , Henry Levy, Object structure in the Emerald system, Conference proceedings on Object-oriented programming systems, languages and applications, p.78-86, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
4
|
BOBROW, D. G., AND STEFIK, M.J. The LOOPS manual (preliminary version). Knowledgebased VLSI Design Group, Tech. Rep. KB-VLSI-81-13, Stanford Univ., Aug. 1981.
|
 |
5
|
Daniel G. Bobrow , Kenneth Kahn , Gregor Kiczales , Larry Masinter , Mark Stefik , Frank Zdybel, CommonLoops: merging Lisp and object-oriented programming, Conference proceedings on Object-oriented programming systems, languages and applications, p.17-29, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
6
|
|
| |
7
|
|
| |
8
|
BUDD, T. A Little SmaUtalh. Addison-Wesley, Reading, Mass., 1987.
|
 |
9
|
Roy J. Byrd , Stephen E. Smith , S. Peter deJong, An actor-based programming system, Proceedings of the SIGOA conference on Office information systems, p.67-78, June 21-23, 1982, Philadelphia, Pennsylvannia, United States
|
 |
10
|
|
| |
11
|
|
| |
12
|
Cox, B. Message/object programming: An evolutionary change in programming technology. IEEE Softw. I, 1 (Jan. 1984), 50-61.
|
| |
13
|
DEREMER, F., AND KRON, $. Programming-in-the-large versus programming-in-the-small. IEEE Trans. Softw. Eng. SE-2 (June 1976), 80-86.
|
| |
14
|
DUFF, C. Neon--Extending Forth in new directions. In Proceedings of 1984 Asilomar FORML Conference, 1984.
|
 |
15
|
Koichi Fukunaga , Shin-ichi Hirose, An experience with a Prolog-based object-oriented language, Conference proceedings on Object-oriented programming systems, languages and applications, p.224-231, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
HALBERT, D., AND O'BRIEN, P. Using types and inheritance in object-oriented programming. IEEE Softw. (Sept. 1987), 71-79.
|
 |
20
|
|
| |
21
|
KAEHLER, T., AND PATTERSON, D. A Taste of Smalltalh. Norton, New York, 1986.
|
| |
22
|
|
| |
23
|
LAFF, M.R. Smallworld--An object-based programming system. IBM Res. Rep. RC-9022, IBM Thomas J. Watson Research Center, Yorktown Heights, N.Y., 1981.
|
| |
24
|
LALONDE, W. R. Why examplars are better than classes. Tech. Rep. SCS-TR-93, School of Computer Science, Carleton Univ., May 1986.
|
 |
25
|
Wilf R. LaLonde , Dave A. Thomas , John R. Pugh, An exemplar based Smalltalk, Conference proceedings on Object-oriented programming systems, languages and applications, p.322-330, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
26
|
LALONDE, W.R. Designing families of data types using exemplars. Tech. Rep. SCS-TR-108, School of Computer Science, Carleton Univ., Feb. 1987.
|
 |
27
|
Kevin J. Lang , Barak A. Pearlmutter, Oaklisp: an object-oriented scheme with first class types, Conference proceedings on Object-oriented programming systems, languages and applications, p.30-37, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
28
|
LIEBERMAN, H. A preview of Act 1. MIT AI Lab. Memo 625, June 1981.
|
 |
29
|
|
 |
30
|
|
 |
31
|
Patrick D. O'Brien , Daniel C. Halbert , Michael F. Kilian, The Trellis programming environment, Conference proceedings on Object-oriented programming systems, languages and applications, p.91-102, October 04-08, 1987, Orlando, Florida, United States
|
| |
32
|
O'SHEA, T. The learnability of object-oriented programming systems. In Object-Oriented Programming Systems, Languages and Applications '86 (Portland, Ore., Sept. 1986), 502-504.
|
| |
33
|
PUGH, J. R., AND LAZONDE, W.R. Data structures and data types: An object-oriented approach. In Canadian Information Processing Society, Congress '86 (Vancouver, B.C., April 1986), 251-258.
|
 |
34
|
Craig Schaffert , Topher Cooper , Bruce Bullis , Mike Kilian , Carrie Wilpolt, An introduction to Trellis/Owl, Conference proceedings on Object-oriented programming systems, languages and applications, p.9-16, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
35
|
|
| |
36
|
SHAPIRO, E. Y., AND TAKEUCHI, A. Object-Oriented Programming in Concurrent Prolog. Vol. 1, New Generation Computing, OHMSHA Ltd., and Springer, 1983, 25-48.
|
| |
37
|
SMITH, B. Reflections and semantics in a procedural language. MIT Lab. for Computer Science Rep. MIT-TR-272, 1982.
|
 |
38
|
|
| |
39
|
SNYDER, A. Inheritance and the development of encapsulated software components. In Proceedings of HICSS-20 (1987), 227-237.
|
| |
40
|
|
 |
41
|
|
| |
42
|
|
| |
43
|
|
| |
44
|
TESLER, L. Object-Pascal report. Apple Computer, Feb. 1984.
|
| |
45
|
THOMAS, D. A., AND LALONDE, W. R. Actra: The design of an industrial fifth generation Smalltalk system. In Proceedings of IEEE COMPINT '85, (Montreal, Sept. 1985) 138-140.
|
 |
46
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
| |
47
|
VAUCHER, J. G., AND LAPALME, G. POOPS: Object oriented programming in Prolog. Tech. Rep. 565, Laboratoire INCOGNITO, Dept. d'Informatique et de Recherche Operationnelle, Univ. of Montreal, March 1986.
|
 |
48
|
|
 |
49
|
|
| |
50
|
WEGNER, P., AND ZDorqlK, S. Why like isn't like is-a. Brown Univ. Tech. Rep., Brown, Univ., Providence, R.I., April 1984.
|
| |
51
|
ZANIOLO, C. Object-oriented programming in Prolog. In 1984 International Symposium on Logic Programming (Feb. 1984), 265-271.
|
|