| L. Stein. Delegation is inheritance. In Proc. of the ACM Conf on Object-Oriented Programming Systems and Languages (OOPSLA), 1987. 16 |
....of behaviour and a run time entity: it specifies responses to incoming messages and has the responsibility to generate new instances of that class. Inheritance can be viewed as the delegation to another class, the super class, of all messages for which the class has no specified response [8]. Object. An object is an instance of a class. It has a modifiable state consisting of a set of acquaintances references to other objects or classes and it communicates with other objects by call reply exchanges. Objects may or may not execute concurrently. 3. Events and Sensors The ....
L.A.Stein, "Delegation is Inheritance", ACM SIGPLAN Notices, Proceedings OOPSLA 87, vol. 22, no. 12, pp. 138-146, Dec 1987.
....entities without class or inheritance mechanism. They draw closer to prototypes [11] if we note that each activity initiator can be considered as the kMS which acts as the default delegate. So, at run time, contexts use the usual inheritance mechanism, through the layout of the delegates [16]. Strictly speaking, this point implies that we must have capabilities to alter the environment of the activity since we want our approach to modify an X Y cont a cont b cont c pref 1 pref 2 pref 3 pref 4 X Y XY Z attr a attr b activity B context of activity B context of ....
Stein L.A. Delegation is inheritance. OOPSLA, 1987.
....5. mapping generalisation patterns in modelling and programming languages The left hand side of figure 5 shows the most common generalisation pattern in modelling languages and on the right hand side is one of the generalisation patterns found in programming languages and is the delegation model [7,8]. Element3 delegates to element2, this is achieved through the uses and implements relation. The delegationInheritanceMap template maps these two patterns. Again, in addition to the classes and association, well formedness rules expressed as OCL constraints are used to express properties and ....
L. Stein. Delegation Is Inheritance. OOPSLA ,87 Conference Proceedings.
....instances and their classes and subclasses and their superclasses thus introduces inflexibility in distributing programs. The family of delegation based languages often also prototype based introduces an alternative concept to provide object orientation which is of equal expressive power ( Ste87] as class based languages. Here, objects are created by cloning an existing object instead of instantiating from a class. Inheritance is implemented by delegating messages unknown to a an object to a parent object. By keeping state separated from behavior, the instance class relation is ....
Lynn Andrea Stein. Delegation is inheritance. ACM SIGPLAN Notices, 22(12):138-- 146, December 1987.
....directly, rather than modifying classes producing indirect effect on objects, and thus any object can be given individualized local behavior. Conceptual economy and elegance are achieved over classes with a small number of instances [Weg87] and sharing of information can be determined dynamically [Ste87]. The drawbacks include difficulties in modifying objects per group [Weg87] and unnatural representation of some concepts (for example what is a prototypical integer ) Tai93] 4.5.4 Mechanism vs. concept Prototype based inheritance is more a mechanism that provides means for sharing and ....
Stein, L.A., Delegation is Inheritance. In Proceedings of OOPSLA'87 (Orlando, Florida, October 4-8). ACM SIGPLAN Notices, Vol.22, No. 12 (Dec) 1987. pp.138-146.
....with the one achieved by delegation in prototype based languages. We also point out that there are two possible semantics for delegation links. 1 Introduction Prototype based languages are traditionally opposed to class based ones and many comparisons between them have already been proposed [4, 15, 12, 11]. More specifically the delegation mechanism, which is part of many prototype based languages [1, 8] has been compared to the class inheritance mechanism appearing in class based languages. Both mechanisms are inheritance mechanisms and achieve some kind of sharing. The one achieved by delegation ....
....[8] Lieberman claims that delegation is more powerfull than class inheritance since he can simulate the latter using the former but not map the reverse. On the counterpart, Stein states that delegation is class inheritance by presenting a model for class inheritance which also captures delegation [12]. However, these two simulations are based on a certain use of language entities which is not natural: simulating class inheritance using delegation expects some prototypes to act as classes, and the reverse simulation expects classes to be considered as instances. The key point is that there is ....
L.A. Stein. Delegation is Inheritance. In Proceedings of 2nd OOPSLA, Orlando, FL, ACM SIGPLAN Notices (22)12 , pp. 138--146, 1987.
....the definition of object oriented. The literature exposes an innumerable work on the semantics of the inheritance mechanism[Car84, CW85, CP89] on its use [HO87] on multiple inheritance problems [CG90, DHHM92, DHHM94] on new model of inheritance [BC90, JA92] and on alternative solutions [Lie86, Ste87] Inheritance is a mechanism for incremental programming, but two points of view face: on the one hand, one associates inheritance subtyping properties, one the other hand, inheritance is distinguished from subtyping [Ame90, LP91] In all this paper, we do not connect inheritance with any ....
Lynn Andrea Stein. Delegation is Inheritance. In Proceedings of OOPSLA'87, pages 138--146, October 1987.
....according to Wegner[35] intrinsic to the definition of object oriented. The literature has innumerable works on the semantics of the inheritance mechanism[4, 5, 9] on its use [21] on multiple inheritance problems [6, 16, 17] on new models of inheritance [2, 24] and on alternative solutions [27, 34]. We consider inheritance as a mechanism for incremental programming. The idea presented in this paper is to investigate the inheritance mechanism as a relational information between classes and to express it in a distinct way from class structure and functionalities. In this sense, we reject ....
L. A. Stein. Delegation is Inheritance. In Proceedings of OOPSLA'87, pages 138--146, October 1987.
.... semantics [Stro86] Other languages simply avoid multiple inheritance by claiming it isn t really needed or by advocating other concepts such as protocols [Next93] A plethora of papers have been published debating the merits of multiple inheritance and proposing alternative semantics for it [Stei87][Pede89] Brac90] Carr90] Mili90] Duco92] The Idol programming language advocates a simpler inheritance model in which multiple inheritance, including directed acyclic graphs (DAGs) and even cyclic inheritance relationships, are simple and easily interpreted by humans and software tools [Jeff90] ....
Stein, L. A. Delegation is Inheritance. In Meyrowitz, N., editor, Proceedings of the Second ACM Conference on Object-Oriented Programming Systems, Languages and Applications, volume 22, pages 138--146, Orlando, FL, October 1987.
....for a method in its superclasses. The idea of this message dispatching for the methods defined along the inheritance hierarchy (or is a hierarchy) is still applied to each object, and each role, in DOOR. Indeed, in DOOR, this method lookup scheme is augmented with a similar idea called delegation [16] along the played by relationship of the roles being played by an object. Two method lookup modes are supported: Upward lookup: the method is looked up first in the receiving role and then in its ancestor players. Double lookup: the method is first looked up in the receiving role, and then in ....
L.A. Stein. Delegation is Inheritance. In OOPSLA '87 Proceedings, October 1987.
....With respect to our criteria, Concurrent Aggregates satisfy the program modeling criteria reasonably well. Arbitrary types (aggregates) may be defined, as well as arbitrary relationships between types. Delegation is supported which is equivalent in expressive power to inheritance [Ste87] The model even expresses continuations and messages as first class objects. Unfortunately, CA makes a distinction between an object defined outside of a CA and a representative of a CA. This is because the structure of the objects stored in a CA is part of the CA itself. This is a similar ....
Lynn Andrea Stein. Delegation is Inheritance. In OOPSLA '87 Proceedings, pages 138--146, Orlando, FL, October 1987.
....in Java, since the language accepts only multiple inheritance of interfaces, but not of classes. The interface delegation technique uses a combination of delegation and interface conformance. Delegation is used to simulate the form of parent class reuse (Rumbaugh et al. 1991) In delegation (Stein 1987), an object uses a specialized class that is embedded in itself to perform special operations. In this case, the object is composed of other objects, which it uses to perform the methods that it should have inherit, but did not because of the absence of a multiple inheritance implementation. ....
L. Stein (1987) Delegation is Inheritance. in: OOPSLA'87, Orlando, FL, pp 138-146.
....of class de nitions (as well as other run time modi cations of 2 the class hierarchy) Thus the complete class hierarchies are not known at compile time or at any stage preceding the actual program execution. CLOS [20] and Smalltalk are two such languages. Additionally, prototype based languages [3, 5, 33] are also examples of such languages. Name resolution in presence of late binding is easily solved for static object oriented languages (such as Java and C ) since the complete class hierarchy is known at compile time; simple table lookups allow for constant time name resolution. For dynamic ....
....for a given call. This determination may now, however, involve search of the class hierarchy at runtime. How to eciently perform this search is the problem we address and analyze in this paper. Similar situations occur (with greater frequency) in prototype based object oriented languages [3, 5, 33]. In these frameworks the concept of class is not present, rather, it is replaced by the idea of prototypes. Objects and prototypes are created on the y and each object prototype can be cloned to create new objects; parent attributes are used to connect the objects into hierarchies; execution of ....
L. Stein. Delegation is Inheritance. In OOPSLA. ACM, 1987.
....objects which have the combined advantages of the original objects; Chapter 2. Supporting the needs of CSCW applications 20 . to make run time decisions, about the patterns of communication (and delegation) Delegation provides at least the same advantages as inheritance for CSCW. Indeed, Stein [Stein, 1987] has shown how inheritance is only a restricted form of delegation. The trade off that is made is space versus time. Delegation can be very slow without careful modelling whereas inheritance takes up a lot more space in sheer object size and is less flexible. In meeting the needs of CSCW ....
Stein, L.A. (1987): "Delegation is Inheritance." in Proceedings of OOSPLA'87, 1987, vol.October 4-8, pp.138-146.
....and different implementation of their operations. For example, some software units used in a C program may contain YACC code instead of plain C code, and some software units may be library functions that do not have implementation parts. We use the delegation model [Lieberman 86] Ungar 87] Stein 87] Orlando 89] instead of the more conventional class inheritance model to describe the sharing of behavior between software units. Delegation can simulate the class inheritance mechanism while supporting the sharing of attributes between individual objects. With the delegation mechanism, we ....
Lynn Andrea Stein, "Delegation is Inheritance, " in ACM OOPSLA `87, pp. 138-146, October 1987.
.... Composition vs Subclassing: Introducing the Problem Often, object oriented programmers use inheritance (a subclassing mechanism) as a code sharing technique rather than in recognition of an actual subclassing relationship between classes (Meyer [84] often uses inheritance in this way and Stein [104] argues that delegation is inheritance) This is problematic in all areas of object oriented development. The following vector example illustrates the problem from two different points of view. A vector Class Two different views are as follows: ffl Subclassing A vector can be defined to be ....
L. A. Stein. Delegation is inheritance. In Object Oriented Programming Languages Systems and Applications (OOPSLA 87), 1987. BIBLIOGRAPHY 259
....The specification also states that printing an empty buffer is a no op rather than an error. By writing the specification, or at least parts of it, before starting the implementation, one can benefit from the commonly advocated advantages of a structured development process [22] Cliff Jones [13] argues that formalism employed to justify early data structure and design decisions which helps avoid the most costly errors is the most important application of formal methods. Specifications written after the implementation tend to lay down irrelevant details of the specific implementation and ....
....ariane. IEEE Computer, pages 129 130, January 1997. 12] Craig A. Damon, Somesh Jha, and Daniel Jackson. Checking relational specifications with binary decision diagrams. In Proc. Foundations of Software Engineering 96, 1996. http: www.cs.cmu.edu afs cs.cmu.edu project nitpick www home.html. [13] Cliff B. Jones. A rigorous approach to formal methods. IEEE Computer, pages 20 21, April 1996. 14] Gregor Kiczales. Why are black boxes so hard to reuse. In Proceeding of OOPSLA 94, 1994. http: www.parc.xerox.com spl projects oi towardstalk transcript.html. 15] W. Kozaczynski and J. O. ....
[Article contains additional citation context not shown here]
Stein, L.A.: Delegation is Inheritance. In Proc. OOPSLA'87, October 1987.
....from another. Many authors feel that delegationbased inheritance is also a better conceptual model of inheritance than class based inheritance, and is more powerful, as in class based inheritance only class objects can delegate methods and ordinary objects cannot delegate methods to other objects [Stein 87] Delegation also eliminates the potential infinite meta class regress in languages such as Smalltalk [Ungar 87] a x y Figure 3.6: The object a before the use of delegation. 49 Delegation based inheritance can also naturally allow an object to radically change its behaviour ( dynamic ....
....code reuse mechanism is based on delegationbased inheritance (Lieberman 86) Delegation based inheritance is more flexible than class based inheritance, because it allows any object to delegate a method to any other object. In classbased languages only class objects can delegate methods (Stein 87) Delegation based inheritance is also a better conceptual model of implementation inheritance, and it allows a single code reuse mechanism to be designed, based on the concept of method redirection, supporting both part of and inherits from object relationships. In APOSTLE, an object ....
L. A. Stein, "Delegation Is Inheritance", Proc. of the Conf. on ObjectOriented Programming, Systems, Languages and Applications, Orlando, Florida, 4-8 October 1987, pp. 138-146.
.... Delegation is the foundation of a number of objectoriented languages without classes, such as ThingLab [Bor81] Act 1 [Lie87] a Smalltalk without classes [LTP86] and, perhaps most notably, Self [US87] Such languages were shown to be equally as powerful conceptually as inheritance by Lynn Stein [Ste87], although she notes that, in practice, either delegation or inheritance may be more desirable. She even proposes a hybrid model that would allow for both delegation and inheritance in the same language. An excellent analysis of the similarities and differences in both sharing mechanisms is ....
L. Stein. Delegation Is Inheritance. In OOPSLA '87 Conference Proceedings. ACM SIGPLAN Notices 22, 12 (Oct. 1987).
....particular product model is a specialization of a more general lift model, a particular lift configuration is a specialization of a product model. 8 3. 2 Prototype Object Model As the previous section shows, we represent product models and configurations with a prototype based object model [9] [15]. Prototype model has some interesting properties, especially for engineering data modeling (see [2] 3] 5] We do not know any study trying to elaborate the prototype model to support the creation and long term maintenance of complex product models discussed in this paper. Some properties of ....
Lynn Andrea Stein. Delegation is inheritance. In Conference on Object-Oriented Programming Systems and Languages (OOPSLA), pages 138--146, 1987.
....of point s interface. Objects which define new print methods can share these common routines transparently without violating the specification for points by reifying over point s closure. This implementation shares characteristics common to both class based[6, 13] as well as delegation based[18, 24] systems. As in a class based system, distinct instances of points and color points remain structurally identical, and share common method definitions. Reification over environments permit prototype objects to be constructed as well. There is no a priori constraint that requires new instances of ....
Lynn Stein. Delegation is Inheritance. In OOPSLA'87 Conference Proceedings, pages 138--146, 1987. Published as SIGPLAN Notices 22(12), December, 1987.
....we want to replace a component of a product delivered five years ago by a new component using the validity rules of the original product, possibly long ago rejected from the product line. We call catering for these two orthogonal change processes as graceful evolution. The prototype approach [6,8, 9] seems to provide us with the flexibility needed to cope with gradual refinement and graceful evolution. The fundamental idea is to allow each object to serve both as a representation of some rudimentary version [3] and as a source for further refinements; there is no distinction between classes ....
....in our model because any instance can serve as a parent for another object and thus become a subtype. Our rationale for dispensing with types and instances in the description of engineering data is very similar to that of Demaid and Zucker [3] Our model also resembles the hybrid model in [9]. If parent objects are regarded as types, it is also possible to talk about type evolution [2,7] in our model. Object T in Figure5 represents a type, which declares attributes a and b, while object X represents an instance of this type. Now we want to create a new version of type T, called T2, ....
Stein, L.A. "Delegation Is Inheritance". In Proc. Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pages138--146. 1987.
....8 3.3 Interaction of policies Let s consider how the interaction of mechanism for redundancy elimination and for objects extension affects object organization modes. Our exposition is graphically shown in Figure 4, 7 Not unlike the cut and paste paradigm. 8 In fact, Stein has shown [Ste87] that inheritance is subsumed by delegation. cloning traits (shared behavior) data parent (extended structure) A B A A B A B A A B A B A A A B A A A B A A B A B A B A A B (A B) B A (A B) d) c) b) a) object s mutable part object s immutable part split instance (cloned object) prototype ....
Lynn Andrea Stein. Delegation is inheritance. In OOPSLA, editor, OOPSLA '87: Conference on Object Oriented Programming, Systems, Languages and Applications, pages 138--146. ACM SIGPLAN, ACM Press, Orlando, FL, USA, 4--8 Oct 1987.
....relationships [Mar96] In this paper, we show how to design an OO database from an ER schema, by applying a mechanism known as delegation. Delegation is a mechanism for object oriented systems in which properties can be shared among objects. Delegation has been earlier discussed in literature [Lie86,Ung87, Wol88,Ste87], but not in the context of database design. The delegation mechanism allows state and behavior sharing patterns to be set dynamically at run time, thus providing more flexibility and power of reuse. It differs from inheritance, in which the sharing pattern is predefined at design time and cannot ....
....Delegation is a mechanism for object oriented systems in which properties can be shared among objects. With the delegation mechanism, a relationship between objects can be established at run time, so that an object named Parent provides properties to be shared with other objects named Clients [Lie86,Ste87,Ung87,Wol88]. Delegation resembles the inheritance mechanism [Ste87] In the latest, clients correspond to subclasses and parents correspond to superclasses. However, there is a crucial distinction between delegation and inheritance: inheritance relationships are specified as part of an object class ....
[Article contains additional citation context not shown here]
STEIN, L. A. Delegation is Inheritance. In: INTERNATIONAL CONFERENCE ON OBJECTORIENTED PROGRAMMING SYSTEMS, LANGUAGES AND APPLICATIONS, 1987. p.138-146.
....to be new, where our formulation has no such requirement; thus distinct instances may share components and, in turn, the components state. Because classes are not explicit, and it is possible to share state and behavior, one may say this approach provides delegation rather than inheritance[11, 21]. When more than one component defines behavior for an operation, the behavior from the more specific component (the one consulted first) shadows the less specific. 2.3 Operations on self One frequently wants to write a method that performs further operations on the instance. For example, if we ....
Lynn Andrea Stein. "Delegation is inheritance." SIGPLAN Notices 22(12), 1987.
....which of the applicable methods should be used. 4.2.3 Inheritance vs Delegation In this paper, we propose the use of the concept of class hierarchies as the means for incremental sharing and definition. An alternative mechanism, independent of the concept of class, is delegation. Delegation [Ste87, Lie86, Weg87] is a mechanism that allows objects to delegate responsibility for performing an operation to one or more designated ancestors. A key feature is that when an object delegates an operation to one of its ancestors, the operation is performed in the environment (scope) of the ancestor. ....
Lynn Andrea Stein. Delegation Is Inheritance. In Proceedings of OOPSLA '87, pages 138--146, October 1987.
....[6] code for concrete feature selections, first using inheritance and then using aggregation and delegation. This shows the relations with known techniques and compares both techniques. In fact, we will show two cases where aggregation is more expressive than inheritance, refining earlier results [17]. To summarize, feature oriented programming is advantageous for the following reasons: It yields more flexibility, as objects with individual services can be composed from a set of features. This is clearly desirable, if many different variations of one software component are needed or if new ....
Lynn A. Stein. Delegation is inheritance. ACM SIGPLAN Notices, 22(12):138-- 146, December 1987.
....or aspects [ESS92] and in different phases of their life (see also [WJ91] As in programming languages, role classes in Troll2 inherit the specification of their base classes. Moreover role class objects in Troll2 contain their base objects leading to an inheritance mechanism based on delegation [Ste87] Objects of role classes are born sometime during the lifetime of their base objects due to occurrence of events . Similarly they leave a role with occurrence of events. In contrast to syntactical inheritance also the objects themselves are inherited . The concept of roles resembles the is a ....
L.A. Stein. Delegation is Inheritance. SIGPLAN Notices, Special Issue OOPSLA87, 22(12):138--146, 1987.
....object oriented language includes language level support for classes and objects, as well as a mechanism by which a new class can be created from an existing one by inheriting the operations and data of the parent. This mechanism could be either inheritance or delegation, the two being equivalent (Stein, 1987). With single inheritance each class has a single direct ancestor, whereas multiple inheritance enables each class to have more than one direct ancestor. The parent class is termed the super class and the child class a sub class. Delegation An alternative to inheritance for class re use and ....
....synchronisation in object oriented programming are inadequate when inheritance is considered. The next section will review models which have been presented with this in mind and will consider how they have attempted to overcome the effects of the inheritance anomaly. 2.4. 3 The Delegation Anomaly Stein (1987) argues that delegation and inheritance are equivalent mechanisms, so the question arises: does a delegation anomaly also exist To answer the question, we need to consider the three categories of the inheritance anomaly for a delegation based system and show how they suffer from the same ....
Stein, L. (1987). Delegation is inheritance, ACM SIGPLAN Notices -- Proceedings of OOPSLA'87 22(11): 138--146.
....the second case, it will only be those elements that also have a certain representation. Since the first is more basic, we begin by discussing interface types. The following example uses the syntax of Rapide, an experimental language designed for prototyping software and mixed software hardware systems [BL90a, MMM91, KLM94, KLMM94] type Point is interface xval : Int; yval : Int; distance : Point Int; end interface; Objects of type Point must have two integer methods, called x val and y val, and a function method called distance. A function computing the distance between two points requires ....
....other approaches, this is a direct model, giving explicit typing rules for operations on objects, instead of an encoding (or compilation ) into a typed calculus without objects. An interesting trade off that appears is that object based inheritance, as found in Self [US91, CU89] see also [Lie86, Ste87] seems to preclude subtyping. The calculus described here is from [Mit90, FHM94] in a variant due to Abadi and Cardelli [Aba94, AC94] restrictions on the object operations yield a natural form of subtyping. All of the models presented here are functional. Adding memory and side effects seems ....
[Article contains additional citation context not shown here]
L.A. Stein. Delegation is inheritance. In Proc. ACM Conference on Object-Oriented Programming
....is a good example of the synergy between encapsulators and Self, as it provides a great benefit with no extra complexity to encapsulators implementation. 3. 2 Inheriting Encapsulators In class based languages, a message resent between classes is treated like a message delegated between objects [15]. For example, the second frame of Figure 3 could also describe an encapsulator which inherits from its target object. When such an encapsulator resends a message to its target object, self s binding is not changed. Self provides inheritance between objects, which behaves like inheritance between ....
Lynn Andrea Stein. Delegation is inheritance. In OOPSLA Proceedings, December 1987.
.... In this paradigm each object defines some behavior itself and delegates additional behavior to other prototypical objects as required [Agh87, Lie86] Strong arguments have been made to show that delegation and inheritance are both viable methods for incremental definition and sharing of behavior [Ste87] Recent models have attempted to combine the two in an integrated fashion [Sci89] Some more formal approaches to inheritance and classification have also helped define object oriented concepts. Cardelli defines a set inclusion semantics for multiple inheritance by interpreting objects as ....
L. A. Stein. Delegation is Inheritance. In Proc. of the Object-Oriented Programming Systems and Languages Conference, pages 138--146, 1987.
....this requirement can be detected at compile time in statically typed languages and at runtime in dynamically typed languages. For example, an object referenced as a File 7 will be expected 5 There is even argument that delegation and subclassing are simply different views of the same principles[Ste87] 6 Because of this, often when describing object oriented programs, designers use the name of an abstract class when they mean that class or any concrete classes implementing the interface. 7 A convention used throughout the rest of this thesis is that class names will have their first ....
Lynn A. Stein. Delegation is Inheritance. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications, pages 138-- 146, 1987.
....Unlike the other approaches, this is a direct model, giving explicit typing rules for operations on objects, instead of an encoding (or compilation ) into a typed calculus without objects. An interesting trade off that appears is that delegation, as found in Self [US87, CU89] see also [Lie86, Ste87] seems to preclude subtyping. The 18 February 21, 1994 calculus described here is from [Mit90, MHF93] in a variant due to Abadi and Cardelli [Aba93, AL94] restrictions on the object operations yield a natural form of subtyping. All of the models are functional. Adding memory and ....
L.A. Stein. Delegation is inheritance. In Proc. ACM Conference on ObjectOriented Programming Systems, Languages, and Applications, pages 138-- 146, 1987.
....object can, in turn, become a prototype for another object. By the omission or addition of properties, the new copy may not be identical to its prototype. In this way it is possible to model a problem incrementally in an Actor language without having to use a class hierarchy. Several researchers [7, 21, 22, 29, 30, 33] have noted this fact. 4.1. Sequentiality Sequentiality of instruction processing does not exist within this programming model. In a script, the instruction sequence does not necessarily correspond to the order in which the instructions are carried out. The Actor model is based on a highly ....
L.A. Stein, Delegation is inheritance, OOPSLA'87 Conference Proceedings, publié dans SIGPLAN Notices, 22, 1987, pages 138-146.
....been tied to the choice of the type system. Those models which allow variant and prototypical objects typically implement delegation as the sharing mechanism, while those that enforce strong typing implement inheritance. There has been some recognition that the two mechanisms are similar [SLU89, Ste87] but the semantics of an object data model that permits prototypical and variant objects, but implements inheritance as the sharing mechanism is likely to be quite complicated. The specification of inheritance between types and the inheritance between instances of those types (which are ....
L. A. Stein. Delegation is inheritance. In OOPSLA '87 Conference Proceedings, pages 138--146, 1987.
....[BC90] which, they claim, is a generalisation of Beta style inheritance, single inheritance with super calls and multiple inheritance. ffl Some languages provide delegation as an alternative to inheritance (though there are some claims that delegation is actually a form of inheritance [Ste87] This is another area that needs to be analysed for conflicts that might hinder code reuse [BY87] It is beyond the scope of this thesis to analyse how the ISVIS conflict manifests itself in all of these different forms of inheritance for sequential code. Instead, we confine ourselves to ....
Lynn Andrea Stein. Delegation Is Inheritance. In Norman Meyrowitz, editor, Proceedings of OOPSLA'87, pages 138--146, December 1987. Published as a special issue of SIGPLAN Notices, 22(12).
....classes are not distinguished from other objects; instead, any object can serve as a prototype for other objects. Furthermore, Self does not distinguish between accessing an instance variable and sending a message to an object. Inheritance from objects other than classes is often called delegation[Ste87, Nie89] 2.2.4 Polymorphism Object oriented languages provide polymorphic functions, which can be applied to objects of various types[Dig86, Nie89] Polymorphism allows software to be more general (applicable to more kinds of data) and extensible (applicable to as yet unspecified data) ....
Lynn Andrea Stein. Delegation is Inheritance. In Proceedings of OOPSLA '87, pages 138--146, Orlando, Florida, October 1987.
....classless systems. Each object is derived from another object. This is called prototyping. See section on Prototypes for more details. Delegation means that objects delegate responsibility for executing an operation to parent objects. For more details see for example [Wegn 90a] or [Blai91a ] and [Stei 87a]. An important paper concerning sharing in object oriented systems is [Stei 89a] This is known as The Treaty of Orlando . Three researcher namely Lynn Stein, Henry Liebermann and David Ungar proposing different views of sharing met in 1987 at the OOPSLA Conference in Orlando. In earlier ....
....Describes modifiability of inheritance, conflicts with multiple inheritance. Nier 89a] Explains partial inheritance, static and dynamic inheritance. Port 92a] Difference between subtype and subclass (inheritance of implementation) is discussed. Scio 89a] Delegation vs. Inheritance. [Stei 87a]: Special paper on relationship between delegation and inheritance. Stei 89a] The Treaty of Orlando : Consensus about sharing of three people proposing different approaches. Unga 87a] Earlier version of [Unga 91a] Unga 91a] Indoroduction in Self, a language supporting prototyping and ....
Stein L. A., "Delegation is Inheritance", Int. Conf. on Object-Oriented Programming, Languages and Applications (OOPSLA), 1987.
....none of the existing object oriented incremental composition mechanisms provides a general framework to handle these issues in a uniform manner. The class based inheritance models do not support dynamic composition, as argued in [11, 22, 24, 30, 32, 35] The object based [38] and hybrid [33] inheritance models do provide support for dynamic composition of object behavior, but at the price of violating the encapsulation of the client interface [35] and losing valuable sharing and structuring mechanisms [32] The approaches that model real world entities by a set of role [11] or ....
....state related alterations do not cover all kinds of behavior alterations desired. Second, there is a trade off between incremental behavior modification, dynamic or not, and internal encapsulation between the subparts of an object, also called class encapsulation in [27] as identified by [33, 39]. The implementations of different aspects involved in the behavior of an object should be mutually visible to enable incremental modification, and at the same time certain parts of them should be hidden. This trade off is the source of the name collisions problem. As pointed out by Nierstrasz et ....
Stein L. A. Delegation is inheritance. In Proceedings OOPSLA '87, ACM SIGPLAN Notices, vol. 22, no. 12, pp. 138--146, 1987.
....a way for incrementally defining or refining class level procedures to implement changes. Object Orientation Among the PSEs exploiting object orientation, the closest to EPOS is IPSE 2.5 using PS Algol, and partly MARVEL. ADELE has a hybrid object oriented model, with run time binding (delegation [34]) towards product and or project contexts for customization. EPOS has derived dynamic binding and classproperties from Smalltalk [16] to gain flexibility. Database Support and versioning Many of the PSEs have their own and partially proprietary Object Management Systems (OMSes) e.g. MARVEL, ....
L. A. Stein, "Delegation is inheritance," in Proc. of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'87), (Kissimmee, Florida), pp. 138--146, Oct. 1987. In ACM SIGPLAN Notices 22(12), Dec. 1987.
....object without changing the identity of the receiver. Method lookup therefore always starts at the original receiver of a message even in case of self invocation in an inherited method. Although it can be shown that this behavior can be used to express the effect of class variables and methods [Stein87], it requires to follow some programming conventions in order to organize objects and inheritance relations properly. UCCH91] describes a technique where so called traits objects play the role of classes. Cecil Designed as a successor of Self, Cecil [Cha93] takes a different approach by ....
L. A. Stein, "Delegation is Inheritance". In OOPSLA '87 Conference Proceedings, Orlando, FL, October 1987, Published in ACM SIGPLAN Notices 22(12), December 1987.
....Thus, in a clover language, all three operators are necessary. 3 Here, indistinguishable really means up to object ids. If the objects have different ids, they can always be distinguished in that way. 3 Applications 3. 1 Minimal template The notion of a minimal template has been described in [Ste87] and [Ste89] A minimal template is a type that defines common behavior of its instances, but allows its instances to add other operations and state to their behavior beyond those defined by the template. This is different from standard class based inheritance in the sense that normally a class ....
Lynn Andrea Stein. "Delegation is inheritance." In Proceedings of the Second ACM Conference on Object Oriented Programming Systems, Languages, and Applications, pages 138--146, Portland, Oregon, September 1986.
....replaces the more complex class subclass instance protocol; while this approach does not propose explicit delegation, through dynamic inheritance it shares the essential character 3.1. THE TREATY 5 istics of allowing dynamic sharing patterns and idiosyncratic behavior of individual objects; [Stein, 1987] attempted a rapprochement between the delegation and inheritance views, pointing out that the class subclass relationship is essentially this delegation, or dynamic inheritance, and that these new styles of sharing simply make a shift in representation, using what were previously considered ....
....operations simply because the terminal stream happened to have been implemented first. This illustrates the difference between anticipated and unanticipated sharing. It is primarily 10 an issue of software evolution and design aesthetics, and only indirectly a language issue. The main result of [Stein, 1987] can be rephrased in these terms: because a subclass is defined by stating the differences, in both procedures and data, between it and its superclass, the relation between subclass and superclass is better suited toward unanticipated sharing than the class instance relation, which limits the ....
Lynn Andrea Stein. Delegation is inheritance. In Proceedings of the Second ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 138--146, Orlando, Florida, October 1987.
No context found.
L. Stein. Delegation is inheritance. In Proc. of the ACM Conf on Object-Oriented Programming Systems and Languages (OOPSLA), 1987. 16
No context found.
Lynn A. Stein. Delegation is inheritance. In Proc. OOPSLA'87, pages 138--146, 1987. 252
No context found.
L.A. Stein. Delegation is Inheritance. Proceedings of OOPSLA'87, ACM Sigplan Notices, 22(12):138-146, December 1987.
No context found.
Stein, L. A.: Delegation is Inheritance. In: Proceedings of the Conference on Object Oriented Programming Systems, Languages, and Applications, Orlando, Florida, October, 1987, pp. 138-146
No context found.
Lynn Andrea Stein, "Delegation is Inheritance," in ACM OOPSLA '87, pp. 138-146, October 1987.
No context found.
Ste87 L. A. Stein. Delegation is Inheritance. Proc. OOPSLA'87, Orlando, FL. SIGPLAN Notices, 22:12. Oct 1987.
First 50 documents Next 50
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