| D. Moon. Object-oriented programming with flavors. In OOPSLA, 1986. |
....filters [AWB 94] all enable better control over modularization 17 of crosscutting concerns. A variety of models of AOP are presented in [CAC01] AspectJ [KHH 01] is an effort to develop a Java based language explicitly driven by the principles of AOP. Flavors [WM81, Can82] New Flavors [Moo86] CommonLoops [BKK 86] and CLOS [Ste90] all support before, after, and around methods. Andrews [And01] presents a semantics for AOP programs based on a CSP formalism, using CSP synchronization sets as join points. His language is an imperative language with first order procedures, like ours, ....
D. A. Moon. Object-oriented programming with Flavors. In Norman Meyrowitz, editor, Proceedings ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1--8, New York, NY, November 1986. ACM Press.
....must be imported along with the macro. These symbols might have bindings as variables or functions completely divorced from their role in the macro. and if the importing program is using these symbols for its own functions or variables. a conflict will result. 46 LANG AND PEARLMUTTER Flavors [6, 15] it is possible to define a new flavor or add a method to an existing flavor only at compile time; it would be unthinkable to put a defmeth0d form inside a loop. To retain Lisp s uniform temporal semantics while fully supporting the object oriented paradigm, first class types are necessary. 6 ....
Moon, D.A. Object-oriented programming with Flavors. ACM Conference on Object-Oriented Systems, Programming, Languages and Applications, September 1986, pp. 1-8.
....as a combination of other elements in some sense, is symmetric to the functional advice problem. With functional advice, we are working in function space and know only a few combinators (e.g. before, after, and around) though others are easy to imagine (for example, consider mixins in Flavors [23]) With variables, we re working in variable space, and can think of a variety of combinators for example, the same as and di#erent examples, above, union for set valued fields, append for sequence valued ones, and so forth. 4.3 Program transformation Several authors have argued for ....
D. A. Moon. Object-oriented programming with flavors. In Proc. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1--8. ACM Press, Nov. 1986.
....We show how corresponding implementations in AspectJ look like and discuss their parallels and differences to the known mechanisms. 2 Concepts and Mechanisms in AspectJ 2. 1 Mixin Classes Originally, the term mixin class was introduced in object oriented extensions of Lisp like shown in [2] or [11]. A mixin is an abstract subclass that may be used to specialize the behavior of a variety of parent classes. Mixins don t have superclasses and are therefore not structurally bound to any specific place in the inheritance hierarchy. Just when a certain class extends a mixin, it becomes part of ....
....direct support for mixins on the language level. However, for example in C mixins can be implemented by a class template extending a class which is delivered by a type parameter (like proposed in [16] Also, the meta object facilities of Smalltalk can be used for implementing mixins as shown in [11]. Nevertheless, until now mixins are not available in Java on language level (although more recent proposals about adding generic types to Java like for example [2] will probably become part of Java in future versions and will permit a similar implementation of mixins like in C ) MImpl M.m1( ....
Moon, D. A.: Object-Oriented Programming with Flavors, Proceedings of Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA), 1986, pp. 1-8.
....objects [Tsichritzis et al. 1987] The principle idea is that KNOs are mobile, active entities that can gather information from their environment, and can exchange rules and knowledge with other KNOs. A system for defining KNOs [Casais 1988] has been implemented using the Lisp flavors package [Moon 1986]. In this system, KNOs belong to one or more KNO classes, and are able to dynamically inherit parts while they execute. The operations of a KNO are encoded as production rules, each consisting of a name, a trigger condition, and a series of actions. The actions may be used to modify a KNO s state, ....
....be the same as the environment in which it is used. Encapsulation may therefore be used to hide the implementation language. The practical alternatives are: 1. use an object oriented extension of an existing programming language (such as C [Stroustrup 1986] Objective C [Cox 1986] Lisp flavors [Moon 1986]) 2. use an object oriented language that is translated into the target programming language (such as Ei#el, which is translated into C [Meyer 1986] 3. use an object oriented language augmented with a package for interfacing to other languages within the programming environment (e.g. calling ....
D.A. Moon, "Object-Oriented Programming with Flavors", ACM SIGPLAN Notices Proceedings OOPSLA '86, vol. 21, no. 11, pp. 1-8, Nov 1986.
....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 [Mey88] Kee89] Str86] as well as other mechanisms, such as mixins [Moo86] BC90] FKF98] 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 [Tai96] Summarizing Alan Snyder s contribution to the inheritance panel discussion at OOPSLA ....
....complete. But as a unit of reuse, a class should be small. These properties often conflict. Furthermore, the role of classes as instance generators requires that each class have a unique place in the class hierarchy, whereas units of reuse should be applicable at arbitrary places. Moon s Flavors [Moo86] were an early attempt to address this problem: Flavors are small, not necessarily complete, and they can be mixed in at arbitrary places in the class hierarchy. More sophisticated notions of mixins were subsequently developed by Bracha and Cook [BC90] and Flatt, Krishnamurthi and Felleisen ....
David A. Moon. Object-oriented programming with flavors. In Proceedings OOPSLA '86, ACM SIGPLAN Notices, pages 1--8, November 1986. Published as Proceedings OOPSLA '86, ACM SIGPLAN Notices, volume 21, number 11.
....are both powerful and flexible. We believe that the object oriented approach is appropriate for addressing all three of these issues in a clean and consistent manner. This is in marked contrast to traditional object oriented languages and systems, such as Smalltalk [Gold83] and Lisp with flavors [Wein81 Moon86], which address neither strong typing nor concurrency. Hybrid starts with the object oriented approach as it is manifested in various systems existing today, and it adapts it to a model in which objects are both strongly typed and highly concurrent. Objects are structured, and may contain other ....
D.A. Moon, "Object-Oriented Programming with Flavors", ACM SIGPLAN Notices, vol. 21, no. 11, pp. 1-8, Nov 1986.
....abstraction and strong typing. University of Washington. Blac86] In Objects and Things, ed. D.C. Tsichritzis, Centre Universitaire d Informatique, University of Geneva, March 1987, pp. 183 206. Flavors: Lisp with object classes and multiple inheritance. There are now many flavours of flavors. [Moon86 Wein81] Galileo: An interactive object oriented language from Pisa University. Objects in Galileo are persistent. Alba85] Gemstone: An object oriented database system from Servio Logic. Also check Jan 1987 TOOIS. Maie85] Hybrid: A programming language with multiple inheritance and active ....
D.A. Moon, "Object-Oriented Programming with Flavors", ACM SIGPLAN Notices, vol. 21, no. 11, pp. 1-8, Nov 1986.
....mixins. 3.1.1 Introduction to Mixins The term mixin class (or just mixin ) has been overloaded to mean several specific programming techniques and a general mechanism that they all approximate. Mixins were originally explored in the context of the Lisp language with object systems like Flavors [Moo86] and CLOS [KRB91] They were defined as classes that allow their superclass to be determined by linearization of multiple inheritance. In C , the term has been used to describe classes in a particular (multiple) inheritance arrangement: as superclasses of a single class that themselves have a ....
D.A. Moon, "Object-Oriented Programming with Flavors", OOPSLA 1986.
....before the program runs, and it permits more efficient code to be generated by a compiler. Compile time checking can limit expressive power unless the programming language has a powerful type system; this issue is discussed further in Section 5. Other object oriented languages, e.g. 1] [13], do not enforce encapsulation at all. It is true that in the absence of language support encapsulation can be guaranteed by manual procedures such as code reading, but these techniques are error prone, and although the situation may be somewhat manageable for a newly implemented program, it will ....
Moon, D. "Object-Oriented Programming with Flavors". Proc. of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, SIGPLAN Notices 21, 11 (November 1986).
....the e#ect of wrappers by depending upon linearization to wrap the first parents around later ones [26] Adding an explicit wrapping construct to these languages would obviate the need for linearization and at the same time greatly simplify the behavior of multiple inheritance. Wrappers in Flavors [20] are used to wrap a particular method, and are not a record wrapping construct. 80 Related Work 11.1 Cardelli Cardelli [6] proposed a semantics of inheritance in which he identified inheritance with subtyping. His notion of record subtyping was presented in Chapter 4. Cardelli claimed that the ....
D. A. Moon. Object-oriented programming with Flavors. In Proc. of ACM Conf. on Object-Oriented Programming, Systems, Languages and Applications, pages 1--8, 1986.
....single dispatched methods (e.g. C and Smalltalk) On the other hand, a serious problem in multiple dispatching is the space requirement. Different method combinations can make the lookup structure to explode exponentially. Several previous work have been trying to resolve these problems [5, 12, 17, 20]. Some are time efficient, and some are space efficient,but never both. The work of this paper is to provide a novel lookup mechanism for multi methods. Our scheme absorbs and extends the ideas of previous work on multiple dispatching [5, 12] The lookup is done by means of several nested ....
....approach in Section 9. 2 Previous Work and Comparison The first goal of multiple dispatching is time efficiency. Several time efficient approaches have been proposed for multiple dispatching. However, the relevant problem is the large space requirement. For example, in the Flavors system, Moon [20] proposed a lookup structure which is organized as a set of hash tables. With such a scheme, the number of all possible cases is combinatorially explosive. For comparison, Dussud [15] and Kiczales, et al. 17] introduced cache techniques for multiple dispatching running in CLOS. The dynamic cache ....
MOON, D. Object Oriented Programming with Flavors. In Proc. Conf. OOPSLA, 1986.
....languages support only the metaphor of objects for using state. The simplest languages give the programmer state variables, simple objects that can be read and written. More advanced languages provide abstraction mechanisms that support the construction of abstract objects [GR83, LAB 81, Moo86, Agh86] which support more complex operations. The object metaphor is that objects serve as containers for state. Each container divides the system into two parts, consisting of the users of the container, and the keepers of the container. If the container is a state variable, the keepers will ....
David A. Moon. Object-oriented programming with Flavors. In Proc. First Annual Conference on Object-Oriented Programming Systems, Languages, and Applications. ACM, 1986.
....Class Relationships for SafeStack combined to form a SafeStack class, which is then demonstrated. Figure 6.4 shows these class relationships. The Safety class can be combined with any type of collection (for example, stack, queue, and set) but is not required. It is known as a mixin in Flavors [29], and demonstrates an intuitive use of inheritance that is difficult to achieve with only single inheritance. The inheritance mechanisms cause a minor complication to demand loading. Methods written in Tcl should be auto loaded in a similar fashion as procedures. This distributes the startup time ....
....Multiple inheritance proved simple and efficient to implement as well as intuitive to use. Mechanisms for combining methods to not need to be complicated, as demonstrated by the topological sort algorithm. At the same time they may be natural to use, as exemplified by the mixin model of Flavors [29]. The lack of automatic method combination in C appears to be the major reason why multiple inheritance is perceived to be complicated and of little value there. In C , the next most shadowed method must be specified explicitly using the scope resolution operator. This is suited to static ....
David A. Moon. Object-Oriented Programming with Flavors. In Proceedings of ACM Conference on Object-Oriented Systems, Languages, and Applications (OOPSLA) 1986.
....[14] and composition filters [1] all enable better control over modularization of crosscutting concerns. A variety of models of AOP are presented in [4] AspectJ [11] is an effort to develop a Java based language explicitly driven by the principles of AOP. Flavors [19, 5] New Flavors [15], CommonLoops [3] and CLOS [18] all support before, after, and around methods. Andrews [2] presents a semantics for AOP programs based on a CSP formalism, using CSP synchronization sets as join points. His language is an imperative language with first order procedures, like ours, but it does not ....
D. A. Moon. Object-oriented programming with Flavors. In N. Meyrowitz, editor, Proceedings ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1--8, New York, NY, Nov. 1986. ACM Press.
....support separate template compilation) the utility of such techniques will increase rapidly. 2 Background (Mixins and Mixin Layers) The term mixin class (or just mixin) has been overloaded in several occasions. Mixins were originally explored in the Lisp language with object systems like Flavors [20] and CLOS [18] In these systems, mixins are an idiom for specifying a class and allowing its superclass to be determined by linearization of multiple inheritance. In C , the term has been used to describe classes in a particular (multiple) inheritance arrangement: as superclasses of a single ....
D.A. Moon, "Object-Oriented Programming with Flavors", OOPSLA 1986.
....than rewriting the behavior as the map class is concerned only with the translation between the two realms, and it does not have this behavior interspersed with methods that implement behavior. In the special case of a view with just one class being applied to a class graph, views act like mixins [12]; They add some behavior to a class based on a well defined set of requirements from the superclass. What is Provided by a View On a high level, a view provides a class structure and methods on classes in that structure. The classes have access to the full features of the core language. A view ....
D. A. Moon. Object-Oriented Programming with Flavors. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 1--8, Portland, OR, 1986.
....they support add: A final one (OrderedCollection) is both Extensible and Updatable. The abstract classes in Smalltalk act as mixins for methods that depend upon a key subclass responsibility method; to express this struc ture more directly, Smalltalk would need multiple inheritance or mixins [BC90, Moon86, Carnese84]. 7 Conclusion Interfaces are a useful tool for analyzing class libraries. These interfaces may range in level of detail from protocols (sets of message names) to behavioral specifications. A detailed analysis of the Smalltalk collection class library demonstrates the usefulness of this ....
D. A. Moon. "Object-oriented programming with Flavors." In Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages and Applications, 1986, pp. 1--8.
....event semantics, multiple subtyping enforces the composition of such semantics. This is independent of whether it is assured through some form of multiple inheritance as o#ered by C , Cecil [14] or Ei#el, through subtyping abstract types (e.g. interfaces in Java) or even mixins (e.g. Flavors [47], Ada [35] The term multiple subtyping here simply denotes the ability of expressing multiple specialization relationships. 3.2 The publish Primitive An obvent can be published, which means that it will be asynchronously sent to any concerned subscriber. Following the Java language ....
D. A. Moon. Object-Oriented Programming with Flavors. In ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1986.
....user visible types, inheritance, or facilities for adding behavior to existing objects. However, the T message passing syntax, wherein messages are invoked via normal Lisp function call, has been adopted by several Lisp dialects, including Object Lisp, Oaklisp, CommonLoops, and New Flavors [Moon 86] Object oriented languages in the Lisp family typically do not support either data abstraction or strong typing. Data abstraction is absent because direct access to object state variables is more conducive to the knowledge representation style of programming for which these languages were ....
David A. Moon. Object-Oriented Programming with Flavors. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1--8, Portland, Oregon, October
....may be otherwise out of our control. For true AOP, we want our system to work with oblivious programmers ones who don t have to expend any additional effort to make the AOP mechanism work. The earliest example of oblivious quantification is mixin inheritance, found in MacLisp and Symbolics Lisp [5,15]. With mixins, the derived class functionality is determined by assembling the code of the derived class with the advice of its super classes. The aspect programmer can make quantified statements about the code by adding mixins, while the derived class programmer remains ignorant of these actions. ....
Moon, D. A. Object-oriented programming with flavors. ACM Conference on ObjectOriented Programming Systems, Languages, and Applications (OOPSLA `86) ACM SIGPLAN Notices, vol. 21, no. 11, 1986, pp. 1--8.
....with this new notion; on the implementation side, that we have developed a Jam to Java translator which makes Jam sources executable on every Java Virtual Machine. 1 Introduction In the last years, the notion of parametric heir class or mixin (following the terminology originally introduced in [17, 15]) has attracted great interest in the programming languages community. As the rst name suggests, a mixin is a uniform extension of many di erent parent classes with the same set of elds and methods, that is, a class to class function. To be more concrete, let us consider a schematic class ....
D.A. Moon. Object oriented programming with Flavors. In ACM Symp. on Object-Oriented Programming: Systems, Languages and Applications 1986, pages 1-8, 1986.
....On the one hand, the compiler is responsible for efficient management of parallelism, but not for its extraction. On the other hand, the language, which facilitates the extraction of massive parallelism, is neither explicit nor a completely new language (it is based on Common Lisp Flavors (Moon 1986)) 76 Yariv Aridor, Shimon Cohen and Amiram Yehudai Recent work has been focused on run time techniques for improving the efficiency of Actor based languages (Taura et al. 1993, Chien et al. 1992, Chien et al. 1993) and hardware mechanisms for speeding up fine grain computations (Dally 1990, ....
Moon, D. (1986) Object-oriented programming with FLAVORS. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 1--8.
....in the SUIT project [Pausch1992] However, we feel that such an investigation would broaden the scope of this work too much and so we leave it to the future. 4.2. Mixin Inheritance Mixin inheritance is an object oriented programming technique which originated in the Flavors programming system [Moon1986]. By exploiting an anomaly of the multiple inheritance mechanism in Flavors, mixin classes allow a more dynamic, applicative style of object oriented programming where classes are modified and refined by having new features mixed in to them. Mixin inheritance has since been incorporated into the ....
David A. Moon, "Object-Oriented Programming with Flavors", in Proceedings OOPSLA `86, SIGPLAN Notices, Vol. 21, No. 11, pp. 1-8, November 1986.
....Tcl with a structured programming environment modeled after C . Our extension more closely resembles CASTE, though it uses Tcl like syntax instead of CLOS like syntax. In terms of other languages, our work has resulted in a compact, dynamic, and introspective language modeled after Flavors [11] rather than C [3] As with other extensions, we use a message passing style to be consistent with Tk [12] However, unlike other extensions Object Tcl allows each object to be feature Object Tcl [incr Tcl] multiple directed disjoint inheritance acyclic graph trees method automatic ....
David A. Moon. Object-Oriented Programming with Flavors. In Proceedings of ACM Conference on Object-Oriented Systems, Languages, and Applications (OOPSLA) 1986. ACM, September 1986.
....92, Chambers 95] generalizes this idea, selecting a method based on the dynamic class of any subset of the message s arguments. Multiple dispatch is in many ways more expressive and flexible than single dispatch in object oriented (OO) programming [Bobrow et al. 86, Chambers 92, Castagna 97, Moon 86] In this paper we propose a new, simple, and orthogonal way of adding multiple dispatch to existing languages with single dispatch. The idea is to add tuples as primitive expressions and to allow messages to be sent to tuples. Selecting a method based on the dynamic types of the elements of the ....
David A. Moon. Object-Oriented Programming with Flavors. In Norman Meyrowitz (editor), OOPSLA '86 Conference Proceedings, Portland, Oregon, September 1986, volume 21, number 11 of ACM SIGPLAN Notices, pp. 1-8. ACM, New York, November, 1986.
....Finally, the new solution does not suffer from the scalability problems of the partial solutions. 1 Introduction A mixin is a fragment of a class in the sense that it is intended to be composed with other classes or mixins. The term mixin (or mixin class) was originally introduced in Flavors [Moo86], the predecessor of CLOS [Kee89] The difference between a regular, stand alone class such as Person and a mixin is that a mixin models some small functionality slice, for example, printing or displaying, and is not intended to be used stand alone, but rather to be composed with some other ....
D. A. Moon. Object-Oriented Programming with Flavors. In Proceedings of the 1st ACM Conference on Object-Oriented Programming Languages and Applications (OOPSLA '86), ACM SIGPLAN Notices, vol. 21, no. 11, 1986, pp. 1-8
....from types, and inheritance from subtyping. Subtype relationships are also extensible and statically scoped. These features combine to make BeCecil unusually expressive, while still allowing static typechecking. 1 Introduction Object oriented (OO) languages with multimethods [Bobrow et al. 86, Moon 86, Chambers 92] offer increased expressiveness over languages with only singly dispatched methods, for the following reasons: dispatching on all arguments is more flexible and symmetric than dispatching on only the first argument; multiple dispatching generalizes and unifies global procedures, ....
David A. Moon. Object-Oriented Programming with Flavors. In Norman Meyrowitz (editor), OOPSLA '86 Conference Proceedings, Portland, Oregon, September 1986, volume 21, number 11 of ACM SIGPLAN Notices, pp. 1-8. ACM, New York, November, 1986.
....procedure slots are included in the facet. Linda tuples are shared among all interested processes, just as facets are shared among all interested objects, that is, their statically defined enclosing objects. On the other hand, facets may be treated as the dynamic analog of Flavors s mixins [Moon 86] Mixins provide data and procedure slots that may be inherited by arbitrary objects. Such inheritance is concerned with structure, however, not contents. In particular, each inheriting object may have different values in the data slots inherited from the same mixin. As mentioned previously, the ....
David A. Moon. Object-Oriented Programming with Flavors. In Norman Meyrowitz (editor), Object-Oriented Systems, Languages, and Applications Conference, pages 1-8. ACM, Portland OR, September, 1986. Special issue of SIGPLAN Notices, 21(11), November 1986.
....form of parametric polymorphism, although this may change in the near future [2, 13] 5 3 Parameterized inheritance In this section, we consider an alternative to multiple inheritance based on the parameterized mixin idea. Mixins are a programming idiom first introduced in the Flavors system [12]. A mixin is a lightweight base class responsible for a particular property. By inheriting from the main base class C and several mixins, it is possible to create various modifications of C and mix in new properties as needed. The mixin style of programming is sometimes cited as the ....
Moon, D. (1986). Object-Oriented Programming with Flavors. OOPSLA '86.
....enabling modular development of class hierarchies e.g. a subclass can be implemented before its superclass has been implemented. Mixin inheritance can be used to model single inheritance and many common forms of multiple inheritance [11, 9] Mixins were first introduced in the Flavors system [38] and CLOS [33] although as a programming idiom rather than a formal language construct. Our calculus is an attempt to formalize mixins as the basic mechanism underlying all inheritance. To ensure that mixin inheritance can be statically type checked, our calculus employs constrained ....
D. Moon. Object-oriented programming with Flavors. In Proc. OOPSLA '86, pages 1--8, 1986.
....languages. We begin by reviewing the concepts of encapsulation and data Abstraction, as realized by most object oriented language. We then review the concept of inheritance and demonstrate how the inheritance models of popular object oriented languages like Smalltalk [Goldberg83] Flavors [Moon86], and ObjectiveC [Cox84] fall short in their support of encapsulation. We examine the requirements for full support of encapsulation with inheritance. Object Oriented Programming Object oriented programming is a programming methodology based on the following key characteristics: Designers ....
....external interface of the class y2. Linear Solutions The second strategy for dealing with multiple inheritance is to first flatten the inheritance graph to a linear chain, without duplicates, and then treat the result as single inheritance. This strategy is used by Flavors (as recently revised) [Moon86] and CommonLoops [Bobrow86] These languages use similar algorithms for creating a total ordering that preserves the ordering along each path through the inheritance graph (a class never appears after one of its ancestors) Flavors attempts as well to preserve the relative ordering of the parents ....
David A. Moon. Object-Oriented Programming with Flavors. Proc. ACM Conference on Object-Oriented Systems, Languages, and Applications. Portland, Oregon, Sept. 1986.
....support separate template compilation) the utility of such techniques will increase rapidly. 2 Background (Mixins and Mixin Layers) The term mixin class (or just mixin) has been overloaded in several occasions. Mixins were originally explored in the Lisp language with object systems like Flavors [21] and CLOS [18] In these systems, mixins are an idiom for specifying a class and allowing its superclass to be determined by linearization of multiple inheritance. In C , the term has been used to describe classes in a particular (multiple) inheritance arrangement: as superclasses of a single ....
D.A. Moon, "Object-Oriented Programming with Flavors", OOPSLA 1986.
....more specific than the other. Consequently, the key distinguishing characteristic of method lookup in a language with multiple inheritance and or multiple dispatching is how exactly this ambiguity problem is resolved. Some languages resolve all ambiguities automatically. For example, Flavors [Moon 86] linearizes the class hierarchy, producing a total ordering on classes, derived from each class local left toright ordering of superclasses, that can be searched without ambiguity just as in the single inheritance case. However, linearization can produce unexpected method lookup results, ....
David A. Moon. Object-Oriented Programming with Flavors. In OOPSLA '86 Conference Proceedings, pp. 1-8, Portland, OR, September, 1986. Published as SIGPLAN Notices 21(11), November, 1986.
....: 25] Inheritance is an incremental modification mechanism imposing constraints on the design of the subclass, for structural and behavioral compatibility, since the subclass is defined by extension of the superclass. Combining methods Before after methods of Clos [9] or Flavors [20] allow programmers to activate more than one method in response to one message. However, the constraint of unicity of the returned value cannot by bypassed and the before after methods can only perform side effects. These languages enable the user to specify manually alternative combination ....
Moon, D. A. Object-Oriented Programming with Flavors. In Proceedings of OOPSLA'86 (Portland, Oregon, Sept. 1986), ACM Sigplan Notices, pp. 1--8.
No context found.
David A. Moon. Object-oriented Programming with Flavors. OOPSLA '86 Proceedings, November 1986.
No context found.
D. Moon. Object-oriented programming with flavors. In OOPSLA, 1986.
No context found.
D. A. Moon. Object-oriented programming with Flavors. In Proceedings of OOPSLA '86, pages 1--6. ACM, 1986.
No context found.
D.A. Moon. Object oriented programming with Flavors. In ACM Symp. on ObjectOriented Programming: Systems, Languages and Applications 1986.
No context found.
D. A. Moon. Object-oriented programming with Flavors. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '86), pages 1--8, November 1986.
No context found.
David Moon. Object-Oriented Programming with Flavors. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 1-8, Portland, September/October 1986. Published as ACM SIGPLAN Notices 21(11), November 1986.
No context found.
D. Moon. Object-oriented Programming with Flavors. In OOPSLA '86, 1986.
No context found.
D. Moon. Object-oriented programming with Flavors. In OOPSLA, 1986.
No context found.
D. Moon. Object-oriented Programming with Flavors. In OOPSLA 1986.
No context found.
D. A. Moon. Object-oriented programming with Flavors. In OOPSLA, pages 1-8, 1986.
No context found.
D. A. Moon. Object-oriented programming with Flavors. In OOPSLA, 1986.
No context found.
D. A. Moon. Object-oriented programming with Flavors. In OOPSLA, pages 1--8, 1986.
No context found.
D. A. Moon, Object-oriented programming with flavors'. in N. Myerowitz (ed.). Proceedings of the ACM Conference on Object-Oriented Programming, Languages and Applications (OOPSLA'86). Special Issue of SIGPLAN Notices. 21. (11). (1986).
No context found.
D.A. Moon, "Object-Oriented Programming with Flavors", ACM SIGPLAN Notices, vol. 21, no. 11, pp. 1-8, Nov 1986.
No context found.
,354-365. Moon, David A. "Object-Oriented Programming with Flavors". Proc. OOPSLA'86, Sigplan Not. 21,11
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