ACM Home Page
Please provide us with feedback. Feedback
Designing families of data types using exemplars
Full text PdfPdf (2.90 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 11 ,  Issue 2  (April 1989) table of contents
Pages: 212 - 248  
Year of Publication: 1989
ISSN:0164-0925
Author
Wilf R. LaLonde  Carleton Univ., Ottawa, Canada
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 31,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/63264.63265
What is a DOI?

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
 
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
6
 
7
 
8
BUDD, T. A Little SmaUtalh. Addison-Wesley, Reading, Mass., 1987.
9
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
 
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
 
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
 
28
LIEBERMAN, H. A preview of Act 1. MIT AI Lab. Memo 625, June 1981.
29
30
31
 
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
 
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
 
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.

CITED BY  13