Abstract
Two varieties of object-oriented systems exist: one based on classes as in Smalltalk and another based on exemplars (or prototypical objects) as in Act/1. By converting Smalltalk from a class based orientation to an exemplar base, independent instance hierarchies and class hierarchies can be provided. Decoupling the two hierarchies in this way enables the user's (logical) view of a data type to be separated from the implementer's (physical) view. It permits the instances of a class to have a representation totally different from the instances of a superclass. Additionally, it permits the notion of multiple representations to be provided without the need to introduce specialized classes for each representation. In the context of multiple inheritance, it leads to a novel view of inheritance (or-inheritance) that differentiates it from the more traditional multiple inheritance notions (and-inheritance). In general, we show that exemplar based systems are more powerful than class based systems. We also describe how an existing class based Smalltalk can be transformed into an exemplar-based Smalltalk and discuss possible approaches for the implementation of both and-inheritance and or-inheritance.
- 1 Bobrow, D.G., and Stefik, M.J., The LOOPS Manual (Preliminary Version), Knowledge-based VI.~I Design Group Technical Report, KB-VLSI-81-13, Stanford University, August 1984.Google Scholar
- 2 Borning, A., The Programming Language Aspects of Tl6nglab, A Constraint-Oriented Simulation Laboratory, ACM Toplas, Vol. 3, No. 4, Oct. 1981, pp. 353-387. Google ScholarDigital Library
- 3 Boming, A., ingalls, D.H., Multiple Inheritance in Smalhalk-80, Proceedings of the AAAI Conference, Pittsburgh, PA., i 982.Google Scholar
- 4 Cox, B., Message~Object Programming: An Evolutionary Change in Programming Technology, IEEE Software, Vol. I, No. l, pp. 50-61, Jan 84. Google ScholarDigital Library
- 5 Curry, B., Baer, L., Lipkie, D., and Lee, B., Traits: An Approach to Multiple-Inheritance Inheritance Subclassing, Proceedings ACM SIGOA Conference on Office Information Systems, published as ACM SIGOA Newsletter Vol. 3, Nm. 1 and 2, 1982, Google ScholarDigital Library
- 6 Duff. C., Neon - Extending Forth in New Directions, Proc. of 1984 Asilomar FORML Conf., 1984.Google Scholar
- 7 Goldberg, A. and Robson, D., Smalhalk-80: The Language and Its Implementation, Addison Wesley, Reading, Mass., 1983. Google ScholarDigital Library
- 8 Laff, M.R., Smallworld . An Object-Based Programming System, IBM Research Report RC-9022, IBM Thomas J. Watson Research Center, Yorktown Heights, New York, 1981.Google Scholar
- 9 LaLonde, W.R.,Why Exemplars are Better Than Classes, Technical Report SCS-TR-93, School of Computer Science, Carleton University, May 1986.Google Scholar
- 10 Lieberman, H., A Preview of ACT 1, MIT AI Laboratory Memo No. 625, June 1981.Google Scholar
- 11 Lieberman, H., Using Prototypical Objects to implement Shared Behavior in Object Oriented Systems, First Annual Object Oriented Programming Systems, Languages, and Applications Conference, Portland, Oregon, September 1986. Google ScholarDigital Library
- 12 O'Brien, P., Trellis: Object-Based Environment, Language Tutorial, Eastern Research Lab., Digital Research Lab Tech. Pep. DEC-TR-373, Nov. 1985.Google Scholar
- 13 Shapiro, E.Y. and Takeuchi, A., Object-Oriented oogramming in Concurrent Prolog, New Generation reputing, OHMSHA Ltd and Sptinger-Verlag, Vol. I, 1983, pp. 25-48.Google Scholar
- 14 Tesler, L., Object-Pascal Report, Apple Computer, Feb. 1984.Google Scholar
- 15 Thomas, D.A., and Lalonde, W.R., Actra: The Design of an Industrial Fifth Generation Smalltalk System, Proc. of IEEE COMPINT '85, Montreal, Canada, Sept. 1985, pp. 13g-140.Google Scholar
- 16 Vaucher, J.G. and Lapalme, G., POOPS: Object Oriented Programming in Prolog, Technical Relx~ 565, Laboratoire INCOGNITO, Dept. d lnformatique et de Recherche Operationnelle, University of Montreal, March 1986.Google Scholar
- 17 Weinreb, D., Moon, D., Flavours - Message-ltassing in the Lisp Machine, MIT AI Memo No. 602, Nov. 1980.Google Scholar
Index Terms
- An exemplar based Smalltalk
Recommendations
An exemplar based Smalltalk
OOPSLA '86: Conference proceedings on Object-oriented programming systems, languages and applicationsTwo varieties of object-oriented systems exist: one based on classes as in Smalltalk and another based on exemplars (or prototypical objects) as in Act/1. By converting Smalltalk from a class based orientation to an exemplar base, independent instance ...
Multiple inheritance in smalltalk-80
AAAI'82: Proceedings of the Second AAAI Conference on Artificial IntelligenceSmalltalk classes may be arranged in hierarchies, so that a class can inherit the properties of another class. In the standard Smalltalk language, a class may inherit from only one other class. In this paper we describe an implementation of multiple ...
Hierarchical layer-based class extensions in Squeak/Smalltalk
MODULARITY Companion 2016: Companion Proceedings of the 15th International Conference on ModularityClass extensions are frequently used in programming languages such as Ruby and Smalltalk to add or change methods of a class that is defined in the same application or in a different one. They suffer from modularity issues if globally visible: Other ...
Comments