30 citations found. Retrieving documents...
David Ungar, Craig Chambers, Bay-Wey Chang and Urs Hlzle. "Organizing Programs without Classes". Lisp and Symbolic Computation. 1991.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
An Imperative Object Based Calculus With Delegation - Anderson, Drossopoulou   (Correct)

....their x co ordinate they will delegate to a 2 . Therefore, moving the vertical line segment left or right is simply a case of changing the single x co ordinate in a 2 which in turn will a#ect both a 3 and a 4 . As already known, delegation can concisely represent class membership and inheritance [12, 16]. For example, consider objects that represent bank accounts which may be either savings accounts or current accounts. Using delegation, we can package the methods specific to current accounts into an object CurrentAccount and those specific to saving accounts into an object SavingsAccount, and ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):0--, 1991.


Extending Java to dynamic object behaviors - Bettini, Capecchi, Venneri (2003)   (Correct)

.... due to the static nature of inheritance, several solutions have been proposed, that we classify into three groups: design patterns [9] extensions of class based languages either with new basic concepts [16] or with new features [21,18,7] solutions inspired by the object based model [13,11,20]. In this paper we address the above issue in the speci c context of class based languages, that form the main stream of object oriented programming [1] The proposed solution is a combination of the three approaches listed above. We propose an extension of Java [2] based on [5] and called ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing Programs Without Classes. Lisp and Symbolic Computation, 4(3):223-242, July 1991.


The Specification of Dynamic Distributed Component Systems - Kiniry (1998)   (2 citations)  (Correct)

....pursue the creation or use of such a language. I consider the following interesting research languages: Beta [106, 113] CLOS [14, 60, 101, 102, 131] and [155, Chapter 28] Dylan [9] ML [38, 124, 134] the Pascal Modula family [127, 128, 175, 176, 173] Oberon [141, 177] Obliq [23, 24] Self [2, 167, 168], Simula [12, 45] and Squeak [91] The following are the out of mainstream production languages I believe are worthwhile: Eiffel [121, 122] Objective C [43, 44] the best short introduction can be found in [108] the best book on the language is [136] Smalltalk [65, 66] and Python [112, 170, ....

D. Ungar, C. Chambers, B.-W. Chang, and U. Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):223--242, 1991. 96


Inheritance Hierarchy Automatic (Re)organization and.. - Bardou   (Correct)

....kernel (e.g. Kevo s clone families [Tai93] Self s maps [CUL89] they are not accessible to the programmer and are thus not much helpful to explicitly de ne abstractions. Other solutions are based on a particular use of some prototypes, such as prototypical instances [Lie86] and Self s traits [UCCH91]. We brie y recall this latter approach as it has been used by Guru which is considered in the next section. Self is one of the most known prototype based systems, it can be roughly thought as a prototype based version of Smalltalk and is very close to it in many ways [US87, Wol99] The Self s ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs H}olzle. Organizing Programs Without Classes. Lisp and Symbolic Computation, 4(3):223{ 242, June 1991.


A Basic Model of Typed Components - Seco, Caires (2000)   (16 citations)  (Correct)

....nature of self invocation under dynamic binding. Because of this, several researchers defended that inheritance as normally used should be highly disciplined or even forbidden across components borders [19, 26, 23] This discussion also applies to delegation based (class less) object models [24], which also provide implementation inheritance with late binding of self. Another related issue concerns reuse of code from several sources by means of multiple inheritance, which is in general a complex and not very popular mechanism, although available in widespread OO programming languages. On ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):223-242, July 1991.


A Basic Model of Typed Components - Seco, Caires (2000)   (16 citations)  (Correct)

....nature of self invocation under dynamic binding. Because of this, several researchers defended that inheritance as normally used should be highly disciplined or even forbidden across components borders [19, 26, 23] This discussion also applies to delegation based (class less) object models [24], which also provide implementation inheritance with late binding of self. Another related issue concerns reuse of code from several sources by means of multiple inheritance, which is in general a complex and not very popular mechanism, although available in widespread OO programming languages. ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):223-242, July 1991.


Proceedings of the Second International Workshop on.. - Weck, Bosch, (Eds.) (1997)   (Correct)

....is implemented, can facilitate a structured development and, thereby, create more general, robust and efficient components and often also helps to save costs. When quality is pursued, productivity follows, K. Fujino, as quoted in [18] For a recent overview of formal methods success stories see [8, 16]. The adaptation of formal specifications has been slow because of difficult notations which differ too much from implementation languages and lack of tool support, but also due to ignorance and prejudice. We aim for a lightweight approach to formal methods, based on a rigorous and general ....

....of OOPSLA 94, 1994. http: www.parc.xerox.com spl projects oi towardstalk transcript.html. 15] W. Kozaczynski and J. O. Ning. Concern driven design for a specification language. In Proceedings of the 8th International Workshop on Software Specification and Design, Berlin, Germany, March 1996. [16] WWW Virtual Library. Formal methods. http: www.comlab.ox.ac.uk archive formal methods.html. 17] Barbara H. Liskov and Jeanette M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6) November 1994. 18] Carlo Ghezzi, Dino Mandrioli and Mehdi ....

[Article contains additional citation context not shown here]

Ungar, D., Chamber, C., Chang, B.-W., Holzle, U.: Organizing Programs Without Classes. In Lisp and Symbolic Computation, July 1991 4:3, Kluwer Academic Publishers, pp. 223-242, 1991.


Alternative Object Organizations using Prototypes.. - Astudillo, Shilling (1993)   (1 citation)  (Correct)

....determine what is shared and what is individual among clones. This is the model used in the Self language [US87] where traits objects hold shared slots, and prototypes and their clones hold individual state. The above mentioned approaches can be used to implement this one, as in fact Self [UCCH91] uses maps to support sharing among clones. ffl Implicit: the issue of sharing is abstracted into membership in a group denoted by a common description of features. This is the case in class based [CW85] languages like Smalltalk [GR89] and C [Str86] where classes hold both shared members ....

....inherits actually two sets of (A) traits : one from its own, and one from the (A B) traits . The solutions to this situation (see Figure 5) all involve making the (A) part of 9 Unless the system itself implements one of the other models beneath the programmer s interface, like Self s maps [UCCH91] cloning traits (shared behavior) data parent (extended structure) B A A B B A A A A A A A A B B A A B object s mutable part object s immutable part COPY OF (A)proto USING A MODIFIED COPY OF (A)proto USING A DEAD ALLEY (A B) A B) A B) A B) split instance (cloned object) split prototype ....

[Article contains additional citation context not shown here]

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3), Jun 1991.


Thinking About Binary Trees In An Objectoriented World - Michael Berman Rowan (1996)   (1 citation)  (Correct)

....which means that objects themselves are templates for creating new objects, as well as being concrete and available to the program. In other words, there is no separation between the class (or type) and the instanti THINKING ABOUT BINARY TREES IN AN OBJECT ORIENTED WORLD 8 ated object [18]. Something like a class is created by creating two concrete objects: a prototype and a traits . There is a slot in the prototype (and all its copies) which allows it to delegate messages to the traits object. The essence of this pattern is that the prototype stores any state necessary for each ....

Ungar, David, Chambers, Chang, and Holzle, "Organizing Programs Without Classes", Lisp and Symbolic Computation 4(3), 1991.


Fast Object Operations in a Persistent Programming System - Myers (1994)   (1 citation)  (Correct)

....for a method invocation if the runtime linker can determine that there is only one possible implementation of the method being invoked. I explain how the Theta runtime system makes this optimization possible. 3. 1 Related Work The technique of customization was pioneered in the language Self [26, 14, 25] to avoid the cost of dispatch entirely in many situations. The idea of customization is to generate multiple versions of the same piece of code, depending on the environment in which the code is needed. The compiler makes customized versions of the code that take advantage of facts known in the ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3), June 1991.


The Specification of Dynamic Distributed Component Systems - Kiniry (1998)   (2 citations)  (Correct)

....not pursue the creation or use of such a language. I consider the following interesting research languages: Beta [106, 113] CLOS [14, 60, 101, 102, 131] and [155, Chapter 28] Dylan [9] ML [38, 124, 134] the Pascal Modula family [127, 128, 175, 176, 173] Oberon [141, 177] Obliq [23, 24] Self [2, 167, 168], Simula [12, 45] and Squeak [91] The following are the out of mainstream production languages I believe are worthwhile: Eiffel [121, 122] Objective C [43, 44] the best short introduction can be found in [108] the best book on the language is [136] Smalltalk [65, 66] and Python [112, 170, ....

D. Ungar, C. Chambers, B.-W. Chang, and U. Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):223--242, 1991.


A Comparison of Object-Oriented Programming in Four Modern.. - Henderson, Zorn (1994)   (6 citations)  (Correct)

....declaration. Finally, Figure 5 shows the Personnel and Student traits and prototypes objects definitions in Self. Self makes use of prototypes with cloning rather than classes with instantiation. However, the behavior of classes with inheritance can be achieved in Self as described by Ungar et al. [14]. To explain how this is done, we will use our database application as an example. Consider the relationship between student and personnel files. Student files inherit data fields and behavior (or traits) from personnel files. The data and traits are divided into separate objects as illustrated ....

David Ungar, Craig Chambers, Bar-Wei Chang, and Urs Holzle. Organizing programs without classes. LISP and Symbolic Computation: An International Journal, 4(3):37--56, 1991.


Metaprogramming in Oberon - Templ (1994)   (5 citations)  (Correct)

....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 unifying the is instance of and inherits from relationships. A new object can be defined as being derived from one or more anchestor ....

D. Ungar, C. Chambers, B. Chang, U. Hölzle, "Organizing Programs Without Classes". Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.


Similarity Inheritance: A New Model of Inheritance for.. - Djang, al. (1998)   (1 citation)  (Correct)

....an object cannot handle a message directly, it delegates it to its parent object, which in turn handles it or delegates it to its parent, and so on. Prototypes remove the need for the concepts of class, subclass and instance since any object can be used as the basis for defining a new object. Self [20] is perhaps the best known prototype based language. ObjectWorld [15] is a prototype based language that uses visual mechanisms to emphasize concreteness. In the prototype model, objects include their definitions, whereas in our approach definitions include objects. Another important difference ....

....fix to the pop operation would propagate to the dequeue on the Queue form. Some prototype based languages lose this ability to propagate changes to groups of objects because of their emphasis on object individuality; instead, shared parts must be abstracted out of the objects, as in Self s traits [20]. 5.3 Fine grained and multiple inheritance As noted in the discussion of the model, the combination of large grained and fine grained similarity allows multiple inheritance. For example, in Forms 3 suppose a new form Deque is created via large grained similarity from Queue. A deque is a ....

Ungar, D., C. Chambers, B. Chang, U. Hölze, "Organizing programs without classes," J. Lisp and Symbolic Computation 4(3), 1991.


Inheritance Using Contracts & Object Composition - Weck (1997)   (6 citations)  (Correct)

....of forwarding. 2 Object Composition versus Class Composition Two notions of classes and inheritance exist in the object oriented programming community. Many programming languages and their underlying models are classbased (e.g. Eiffel, C , Java, or Smalltalk) Others, such as Cecil [5] or Self [16] are prototype based. Class based approaches abstract from the many instances of objects by grouping them into classes. All the objects of one class have the same attributes, accept the same messages, and exhibit the same behavior. Every new object is created as an instance of some specified ....

....copying and modifying source code. The above two views on object orientation use inheritance between different kinds of entities. Class based approaches support inheritance between classes, whereas prototype based approaches support inheritance between objects. The latter is, for instance in Self [16], implemented through reference to a parent object, to which the handling of unknown messages is delegated. Class based approaches fix the inheritance relations at compile time. Since inheritance relates to implementation, class based inheritance fixes the implementation to be inherited at compile ....

Ungar, D., Chamber, C., Chang, B.-W., H¨olzle, U.: Organizing Programs Without Classes. In Lisp and Symbolic Computation, July 1991 4:3, Kluwer Academic Publishers, pp. 223-242, 1991.


Reorganizing Split Objects - Astudillo, Shilling (1993)   (1 citation)  (Correct)

....NO SHARING object s mutable part object s immutable part Figure 1: Factoring of immutable traits language [US87] where traits objects hold shared slots, and prototypes and their clones hold individual state. The above mentioned approaches can be used to implement this one, as in fact Self [UCCH91] uses maps to support sharing among clones. ffl Implicit: the issue of sharing is abstracted into membership in a group denoted by a common description of features. This is the case in class based [CW85] languages like Smalltalk [GR89] and C [Str86] where classes hold both shared members ....

....from the originally extended traits must be done 4 Not unlike the cut and paste paradigm. 5 In fact, Stein has shown [Ste87] that inheritance is subsumed by delegation. 6 Unless the system itself implements one of the other models beneath the programmer s interface, like Self s maps [UCCH91] 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 MONOLITHIC PROTOTYPE SPLIT TRAITS (A B) A B) ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3), Jun 1991.


The Cecil Language - Specification and Rationale - Version 3.0 - Chambers (1995)   (12 citations)  Self-citation (Chambers)   (Correct)

....separating subtyping from code inheritance would be impracticably verbose. Similarly, Cecil s classless object model is designed so that a single object declaration can define an entire data type. This contrasts with the situation in Self, where two objects are needed to define most data types [Ungar et al. 91] Similarly, Cecil s object model supports both concise inheritance of representation and concise overriding of representation, unlike most class based object oriented languages which only support the former and most classless object oriented languages which only conveniently support the latter. ....

.... most data types are actually defined with two objects: one object, the prototype, includes all the instance specific variables that objects of the data type need, while the other object, the traits object, is inherited by the prototype and holds the methods and shared state of the data type [Ungar et al. 91] New Self objects are created by cloning (shallow copying) a prototype, thus giving new objects their own instance variables while sharing the parent traits object and its methods and state. Defining a data type in two pieces can be awkward, especially 15 since it separates the declarations of ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hlzle. Organizing Programs without Classes. In Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.


Predicate Classes - Chambers (1993)   (74 citations)  Self-citation (Chambers)   (Correct)

....methods and exhibit different behavior. This dynamic inheritance allows part of an object s implementation to change at run time. Dynamic inheritance has been used in SELF to implement mutable objects with several distinct behavior modes, such as binary trees with empty and non empty states [Ungar et al. 91] The example in section 4.4 was inspired by this use of dynamic inheritance in SELF. The Garnet system [Myers et al. 92] includes a similar mechanism, also called dynamic inheritance but implemented differently, to effect wholesale changes in the implementation of an object s behavior. This ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle. Organizing Programs without Classes. In Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.


Object-Oriented Multi-Methods in Cecil - Chambers (1992)   (98 citations)  Self-citation (Chambers)   (Correct)

.... SELF most data types are actually defined with two objects: one object, the prototype, includes all the instance specific variables that objects of the data type need, while the other object, the traits object, is inherited by the prototype and holds the methods and shared state of the data type [Ungar et al. 91] New SELF objects are created by cloning (shallow copying) the prototype, thus giving new objects their own instance variables while sharing the parent traits object and its methods and state. Defining a data type in two pieces can be awkward, especially since it separates the declarations of ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle. Organizing Programs without Classes. In Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.


The Cecil Language, Specification and Rationale - Version 2.0 - Chambers (1996)   (12 citations)  Self-citation (Chambers)   (Correct)

....separating subtyping from code inheritance would be impracticably verbose. Similarly, Cecil s classless object model is designed so that a single object declaration can define an entire data type. This contrasts with the situation in Self, where two objects are needed to define most data types [Ungar et al. 91] Similarly, Cecil s object model supports both concise inheritance of representation and concise overriding of representation, unlike most class based object oriented languages which only support the former and most classless object oriented languages which only conveniently support the latter. ....

.... data types are actually defined with two objects: one object, the prototype, includes all the instance specific variables that objects of the data type need, while the other object, the traits object, is inherited by the prototype and holds the methods and shared state 15 of the data type [Ungar et al. 91] New Self objects are created by cloning (shallow copying) a prototype, thus giving new objects their own instance variables while sharing the parent traits object and its methods and state. Defining a data type in two pieces can be awkward, especially since it separates the declarations of ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle. Organizing Programs without Classes. In Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.


The Cecil Language, Specification and Rationale - Chambers (1993)   (15 citations)  Self-citation (Chambers)   (Correct)

....separating subtyping from code inheritance would be impracticably verbose. Similarly, Cecil s classless object model is designed so that a single object declaration can define an entire data type. This contrasts with the situation in SELF, where two objects are needed to define most data types [Ungar et al. 91] Similarly, Cecil s object model supports both concise inheritance of representation and concise overriding of representation, unlike most class based object oriented languages which only support the former and most classless object oriented languages which only conveniently support the latter. ....

.... data types are actually defined with two objects: one object, the prototype, includes all the instance specific variables that objects of the data type need, while the other object, the traits object, is inherited by the prototype and holds the methods and shared state 17 of the data type [Ungar et al. 91] New SELF objects are created by cloning (shallow copying) a prototype, thus giving new objects their own instance variables while sharing the parent traits object and its methods and state. Defining a data type in two pieces can be awkward, especially since it separates the declarations of ....

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle. Organizing Programs without Classes. In Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.


Building a Completely Adaptable Reflective System - Francisco Ortn Soler (2001)   (Correct)

No context found.

David Ungar, Craig Chambers, Bay-Wey Chang and Urs Hlzle. "Organizing Programs without Classes". Lisp and Symbolic Computation. 1991.


Attack of the Clones - James Noble Brian   (Correct)

No context found.

Ungar, D., Chambers, C., Chang, B.-W. & Holzle, U. (1991), `Organizing programs without classes', Lisp And Symbolic Computation 4(3).


Unknown - Workshop On Object-Oriented   (Correct)

No context found.

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hlzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):223--242, 1991.


Extending Java to dynamic object behaviors - Bettini, Capecchi, Venneri (2003)   (Correct)

No context found.

David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Holzle. Organizing Programs Without Classes. Lisp and Symbolic Computation, 4(3):223--242, July 1991.


Intersecting Classes and Prototypes - De Meuter, D'Hondt, Dedecker (2003)   (Correct)

No context found.

Ungar, D., Chambers, C., Chang, B., Holzle, U.: Organizing programs without classes. Lisp and Symbolic Computation 4 (1991) 223--242


Prototype-Based Languages: From a New Taxonomy to.. - Dony, Malenfant, Cointe (1992)   (18 citations)  (Correct)

No context found.

D. Ungar, C. Chambers, B.-W. Chang, and U. Hlzle. Organizing Programs without Classes. Lisp and Symbolic Computation, (4):223-242, 1991.


Intersecting Classes and Prototypes - De Meuter, D'Hondt, Dedecker   (Correct)

No context found.

Ungar, D., Chambers, C., Chang, B., Holzle, U.: Organizing programs without classes. Lisp and Symbolic Computation 4 (1991) 223--242


A Comparison of Object-oriented Programming in Four Modern.. - Henderson, Zorn (1994)   (6 citations)  (Correct)

No context found.

D. Ungar, C. Chambers, B.-W. Chang and Urs H olzle, `Organizing programs without classes', LISP and Symbolic Computation: An International Journal, 4, (3), 37--56 (1991).


Berkeley `97 March 6, 1997 1:57 pm 1 - Object-Based Features Luca   (Correct)

No context found.

Ungar, D., C. Chambers, B.-W. Chang, and U. Hlzle, Organizing programs without classes. Lisp and Symbolic Computation 4(3), 223-242. 1991. [27] Ungar, D. and R.B. Smith, Self: the power of simplicity. Lisp and Symbolic Com- putation 4(3), 187-205. 1991.

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