| Alan Borning, Daniel Ingalls. Multiple Inheritance in Smalltalk-80. In Proceedings of the National Conference on Arti cial Intelligence (AAAI), pages 234-237, Pittsburgh, August 1982. |
....programmers have long realized that single inheritance is not expressive enough to factor out common features (i.e. instance variables and methods) shared by classes in a complex hierarchy. As a consequence, language designers have proposed various forms of multiple inheritance [7, 23, 29, 35, 41], as well as other mechanisms such as mixins [3, 10, 18, 27, 32] that allow classes to be composed incrementally from sets of features. Despite the passage of nearly twenty years, neither multiple inheritance nor mixins have achieved wide acceptance [44] Summarizing Alan Snyder s contribution to ....
Alan H. Borning and Daniel H.H. Ingalls. Multiple inheritance in Smalltalk-80. In Proceedings at the National Conference on AI, Pittsburgh, PA, 1982.
....of the referenced papers. See also archives of the objecttypes daimi.aau.dk mailing list. Arguments from both sides of the debate are presented in [19] Slide 73 Proposals in [13, 11, 10] have coexisting inheritance and subtyping hierarchies. Slide 74 78 Multiple inheritance is discussed in [99, 8, 17, 81, 58]. Slide 80 83 The basic encoding is from [17, 21] The update problem is made clear in [12] Mutable types are from [18] Simpler, specialized subtyping systems are presented in [109, 88, 70, 68, 71, 2, 1, 52] Minimal calculi are proposed in [40, 92, 16] A speciale case of the update problem is ....
Alan H. Borning and Daniel H. H. Ingalls. Multiple inheritance in Smalltalk80. In Proc. AAAI, 1982.
....Equipment Corporation. Trellis Owl incorporates a type hierarchy with multiple inheritance (described below) and strict compile time type checking. Trellis Owl integrates Smalltalk message passing with a multiple inheritance mechanism similar to that Borning and Ingalls s variant for Smalltalk 80 [Borning 82] The type generators of Trellis Owl are similar to Smalltalk s class Class or CLU s parameterized modules. Instances of type generators are called parameterized types and correspond to classes. Trellis Owl employs conventional procedure call syntax. Like many object oriented languages, ....
....in the Smalltalk and Lisp research communities. In the Smalltalk community, the constraint based laboratory ThingLab [Borning 79] supported multiple inheritance. Borning and Ingalls developed an 21 implementation of multiple inheritance that is now part of the official Smalltalk 80 release [Borning 82] although it is seldom used. Flavors, Loops, Oaklisp, and CommonLoops all have multiple inheritance mechanisms. Trellis Owl [Schaffert 86] also supports multiple inheritance. Delegation and Prototypes There has been considerable controversy in the object oriented programming community between ....
Alan H. Borning and Danial H. H. Ingalls. Multiple Inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237, American Association for Artificial Intelligence, Pittsburgh, Pennsylvania, August 1982. Also published as University of Washington TR 82-06-02.
....Multiple inheritance allows more reuse, but is more complex than single inheritance, due to the possibility of clashes between the multiple superclasses. Many different mechanisms have been proposed for resolving or restricting the various kinds of clashes that can occur [Knu88] Coo88] BI82] Car84] 1 Alternative names for subclasses in the literature include: child, heir and descendant. Names for superclasses include: parent and ancestor [Mey88] CHAPTER 3. OBJECT ORIENTATION AND MODULAR REASONING 23 As an example of single inheritance, a double ended queue (deque) class could ....
A. Borning and D. Ingalls. Multiple inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, 1982. Ref. on page 22. BIBLIOGRAPHY 145
....(parent and operation) to specify the desired operation are provided by CommonObjects [Snyder85a] Trellis Owl [Schaffert86] extended Smalltalk We use the term extended Smalltalk to refer to the multiple inheritance extension to Smalltalk defined by Borning and Ingalls. extended Smalltalk [Borning82], and C [Stroustrup86] Because the search for the proper operation starts at a statically known class, invoking an operation in this manner can be more efficient than normal operation invocation; in some implementations, no run time lookup is required. There are several possible objections to ....
Alan Borning and Daniel Ingalls. Multiple Inheritance in Smalltalk-80. Proc. AAAI 1982, 234-237.
....to be reused when introducing multiple inheritance (see section 7) expressions (3) and (5) are evaluated in the case of multiple inheritance only. 3) assigns the array of remaining superclasses. 5) calls the management of multiple inheritance provided by the standard extension of Smalltalk 80 [IngallsBorning82]. This will recompile the methods or generate conflicting methods when needed. 5 The Classtalk Environment The Smalltalk 80 standard browser may confuse the programmer when browsing on Classtalk classes. When the instance class switch is set to class, the browser shows the explicit metaclass, and ....
D.H.H. Ingalls and A.H. Borning, Multiple Inheritance in Smalltalk-80, Proceedings of the National Conference on Artificial Intelligence, pages 234-237, August 1982.
....le meme. doesNotUnderstand: aMessage (self namedObject) perform: aMessage selector withArguments: aMessage arguments Figure 7: Interception d invocations par doesNotUnderstand: technique a entre autre et e utilis ee pour modifier la syntaxe de Smalltalk, afin d introduire l h eritage multiple [13]. Elle a aussi servi a introduire des changements s emantiques [5, 7, 18] Un certain nombre de difficult es pratiques doivent etre r esolues lorsqu une classe a l objet nil pour superclasse. Ces probl emes ont notamment a voir avec l utilisation d une telle classe par l environnement de ....
D.H.H. Ingalls and A.H. Borning. Multiple inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237. AAAI, 1982.
....with in many ways. Snyder[32] divides these into linear and graph oriented approaches. Linear approaches, such as [1, 23, 12, 13, 14] do not model subobject integrity. Graph oriented approaches, all of which are capable of supporting subobject integrity in some way, include extended Smalltalk[2], Trellis Owl[29] CommonObjects[31] ROME[7] and the Krogdahl Stroustrup model discussed here. Some formal models of graph oriented multiple inheritance systems[20, 36] have been based on classname posets rather than class name graphs. As discussed earlier, the transition from graph to poset can ....
BORNING, A., AND INGALLS, D. Multiple inheritance in Smalltalk-80. In Proceedings AAAI '82 (1982), pp. 234--237.
....of parameters, because we need to explicitely create an array to group them. 4.4.1 Transparent Asynchronous Message Passing We would like to integrate harmoniously our new message passing model between actors with the current message passing syntax of Smalltalk 80. The technique initiated in [Ingalls and Borning 82] is based on syntactic error trapping . A message is sent to an object which does not recognize its selector. This voluntary error is trapped by redefinition of the standard error method (doesNotUnderstand: which then executes the chosen strategy. This technique allows to model syntactic ....
D.H.H. Ingalls and A.H. Borning, Multiple Inheritance in Smalltalk80, Proceedings of the National Conference on Artificial Intelligence, AAAI, pages 234-237, August 1982.
....Bast was designed with the secondary goal of making complex fault tolerant distributed algorithms look as close as possible to their orig 17 Neither Smalltalk nor Java offer multiple inheritance. Smalltalk reflective facilities have been proven to make it possible to add multiple inheritance [22], while no such study has yet been published for Java. inal form; such a feature is very interesting as far as teaching fault tolerant distributed systems is concerned. Figure 16 illustrates this point: on the left, we placed an excerpt of the consensus algorithm proposed by Chandra and Toueg in ....
D.H.H. Ingalls and A.H. Borning. Multiple inheritance in smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237. AAAI, 1982.
....specially handled by the system (i.e. impose new semantics for message passing using a precedence list) thereby breaking the harmony of an uniform hierarchy of explicit metaclasses. In Classtalk, an additional metaclass MIClass provides multiple inheritance, according to Ingalls Borning semantics [BI82]. Thus, metaclass composition can be expressed by having the composite metaclass be an instance of MIClass. So far, MIClass detects conflicts in inherited behavior, but it still requires the programmer expertise to solve them. With this technique, we can create a composite metaclass by ....
Alan Borning and Daniel Ingalls. Multiple Inheritance in Smalltalk80. In Proceedings of AAAI'82, pages 234--237, Pittsburgh, Pennsylvania, August 1982.
....like to integrate harmoniously our new message passing model (asynchronousSend: method) between actors with the current message passing syntax of Smalltalk 80. We use a technique initiated in Smalltalk 80 in order to change the syntax (to introduce compound selectors for multiple inheritance [Ingalls and Borning 82] or the semantics (to encapsulate objects [Pascoe 86] of message passing through redefinition of error semantics. A message is sent to an object which, on purpose, does not recognize the selector. This error is trapped by redefinition of the standard error method (doesNotUnderstand: which then ....
D.H.H. Ingalls and A.H. Borning, Multiple Inheritance in Smalltalk-80, National Conference on Artificial Intelligence (AAAI'82), AAAI, pages 234-237, August 1982.
....variable namedObject that references a class, while in instances of ObjectName, variable namedObject references a mailer. The interception technique presented above has been used by the Smalltalk community to modify the syntax of the language, in order to extend it towards multiple inheritance [17]. It was also used 6 By system services, we mean the Smalltalk reflective facilities as well as operating system level services. Isis provides such system services and is used to implement system objects supporting fault tolerance, as we shall see in Section 4. 7 In Smalltalk, the only class ....
D.H.H. Ingalls and A.H. Borning. Multiple Inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237. AAAI, 1982.
.... name collisions as invalid, i.e. they do not support internal encapsulation at all (like single inheritance and linear approaches to multiple inheritance [14, 26] or exploit ad hoc solutions mostly based on renaming and class qualification of message selectors (like graph based approaches [4, 21, 31]) The latter are criticized in [6, 7, 39] because they violate late binding and consequently restrain reusability, even in a static environment. While being considered as remedies for the static case, more advanced solutions proposed in [6, 7, 39] still exhibit flexibility problems especially in ....
....which represent incremental modifications of each other are automatically considered as replicas. Dummy subclasses are needed, simply for reestablishing the incremental modification relationship between the latter. This situation is typical for the graph oriented multiple inheritance approaches [4, 7, 21, 36]. For illustration, the hierarchy in Fig. 13 a) represents the definition of a shared and ATM account, modeled in the point of view notion of multiple inheritance [7] approach. The single role of the class ASAccount is to reimplement debit: merely because otherwise it would be impossible to ....
[Article contains additional citation context not shown here]
Borning A. H. and Ingalls D. H. H.. Multiple inheritance in Smalltalk-80. In Proceedings at the National Conference on AI, Pittsburgh, 1982.
....to manage concurrent protocol executions within the same protocol object, while this problem is handled nicely as soon as algorithms are manipulated as objects. 7 Ingalls and Borning have shown how reflective facilities of Smalltalk can be applied to extend the language with multiple inheritance [11], so we could have used that technique if we really wanted to. Toolbox approach Another possible approach to reuse protocol implementations is to provide programmers with a toolbox containing reusable components and associate them with design patterns. Both Asx [16] and Conduits [10] ....
D.H.H. Ingalls and A.H. Borning. Multiple inheritance in smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237. AAAI, 1982.
....by Suite for specification of attributes. Attributes are associated not only with top level data structures displayed to a user, but also the components of these values, and their components, and so on. Thus attributes are associated not only with the sequence, s, but also its elements such as s[1], and the fields of these elements, such as s[1] f1. Suite constructs the presentation of a value using the attributes of the value and all its descendents. VALUE GROUPS Suite associates a displayed value with a large number of attributes (currently about 50) However, it does not require that ....
....are associated not only with top level data structures displayed to a user, but also the components of these values, and their components, and so on. Thus attributes are associated not only with the sequence, s, but also its elements such as s[1] and the fields of these elements, such as s[1].f1. Suite constructs the presentation of a value using the attributes of the value and all its descendents. VALUE GROUPS Suite associates a displayed value with a large number of attributes (currently about 50) However, it does not require that users specify the value of each attribute for ....
[Article contains additional citation context not shown here]
Alan H. Borning and Daniel H. Ingalls, Multiple Inheritance in Smalltalk-80, Proceedings of the National Conference on Artificial Intelligence, (1982).
....blueprints that guide programmers in producing reusable and portable code. In CONDUITS [13] two kinds of objects are basically offered: conduits and infor 6 Ingalls and Borning have shown how reflective facilities of Smalltalk can be applied to extend the language with multiple inheritance [14], so we could have used that technique if we really wanted to. mation chunks, which can be assembled in order to create protocol layers and protocol stacks. Various patterns are also provided to help programmers in building protocols. However, there is no such thing as protocol object in either ....
D.H.H. Ingalls and A.H. Borning. Multiple inheritance in smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237. AAAI, 1982.
....raised and the program halts. In other words, we take a conservative approach to multi method selection: if it is unambiguous which method is to be used, that method is selected; otherwise it is a runtime error. This approach is like the one taken in the Smalltalk multiple inheritance extension [5] and in Cecil, and in contrast to the more elaborate approach in CLOS, in which a linear ordering is imposed on the inheritance graph. Kaleidoscope 91 has also inherited Cecil s optional and incremental static type checking system. Type declarations on variables and method arguments are strictly ....
Alan Borning and Danial H. H. Ingalls. Multiple Inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234--237, Pittsburgh, Pennsylvania, August 1982. American Association for Artificial Intelligence.
No context found.
Alan Borning, Daniel Ingalls. Multiple Inheritance in Smalltalk-80. In Proceedings of the National Conference on Arti cial Intelligence (AAAI), pages 234-237, Pittsburgh, August 1982.
No context found.
Alan H. Borning and Daniel H. H. Ingalls. Multiple inheritance in Smalltalk80. In Proceedings of AAAI, 1982.
No context found.
D.H.H. Ingalls and A.H. Borning, Multiple Inheritance in Smalltalk80, Proceedings of the National Conference on Articial Intelligence, AAAI, pages 234-237, August 1982.
No context found.
Alan Borning and D. Ingalls. Multiple inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, August 1982, pages 234-237.
No context found.
BORN82 Borning, A. H., Ingalls, D. H. H., Multiple Inheritance in Smalltalk-80, American Association for Artifical Intelligence Conference, August 1982.
No context found.
BORN82 Borning, A. H., Ingalls, D. H. H., Multiple Inheritance in Smalltalk-80, American Association for Artifical Intelligence Conference, August 1982.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC