d87-mra@dront.nada.kth.se (Magnus Ramstr|m) (08/17/90)
I have often seen references to the terms slot-based objects and prototype objects, but never a definition. I would be most grateful if someone could explain these terms to me via e-mail. d87-mra@nada.kth.se (Magnus Ramstr|m). Student @ Dep. of Computer Science.
gordon@mead.UUCP (Gordon Edwards) (08/18/90)
In article <1990Aug17.064856.26549@kth.se>, d87-mra@dront.nada.kth.se (Magnus Ramstr|m) writes: |> I have often seen references to the terms slot-based objects and prototype |> objects, but never a definition. I would be most grateful if someone could |> explain these terms to me via e-mail. |> The Common Lisp Object System (CLOS) uses the term "slot" to refer to the variables that represent a class. Smalltalk uses "instance variable" and C++ uses "member object" to describe the same thing. As for protoype objects, this could mean object-oriented prototyping, or it might be similar to a package specification in Ada or function prototypes in ANSI C. ?????? -- Gordon Edwards Mead Data Central, Dayton OH
vu0310@bingvaxu.cc.binghamton.edu (R. Kym Horsell) (08/18/90)
In article <1171@meaddata.mead.UUCP> mead!gordon@uccba.uc.edu writes: > >In article <1990Aug17.064856.26549@kth.se>, d87-mra@dront.nada.kth.se >(Magnus Ramstr|m) writes: >|> I have often seen references to the terms slot-based objects and prototype >|> objects, but never a definition. I would be most grateful if someone could \\\\\\ >As for protoype objects, this could mean object-oriented prototyping, or >it might be similar to a package specification in Ada or function prototypes >in ANSI C. ?????? I think the distinction made in the original ref was to the difference between class-based heirarchies and delegation/prototype systems. In a class-based system an instance of an object refers to its class (and that class to its superclass) for its methods. A class is understood to stand for the `general case' of objects within the set of objects that it represents. In a delegation/prototype system a prototype is understood to be a typical object of the set it represents. Instead of refering to a class object each object in a prototype system refers to parent objects which may or may not contain attributes and methods shared by `sister' objects. -Kym Horsell
lgm@cbnewsc.att.com (lawrence.g.mayka) (08/19/90)
In article <1171@meaddata.mead.UUCP> mead!gordon@uccba.uc.edu writes: >In article <1990Aug17.064856.26549@kth.se>, d87-mra@dront.nada.kth.se >(Magnus Ramstr|m) writes: >|> I have often seen references to the terms slot-based objects and prototype >|> objects, but never a definition. I would be most grateful if someone could >|> explain these terms to me via e-mail. >|> > >The Common Lisp Object System (CLOS) uses the term "slot" to refer to the >variables that represent a class. Smalltalk uses "instance variable" and >C++ uses "member object" to describe the same thing. Some people employ the term "slot-based" to call special attention to the fact that CLOS (like Flavors, its predecessor) permits one: (1) To define and redefine (modify) a class's methods incrementally, without textual modification or recompilation of the class definition. The latter can therefore consist of as little as a list of superclasses and a list of additional slots. (2) To redefine (modify) a class definition in any way without textual modification or recompilation of its methods. Hence, one can add or remove superclasses and slots just as easily as methods. Needless to say, Common Lisp programmers prize this flexibility; others often scorn it. Lawrence G. Mayka AT&T Bell Laboratories lgm@iexist.att.com Standard disclaimer.
johnson@m.cs.uiuc.edu (08/21/90)
Lawrence Mayka wrote: >Some people employ the term "slot-based" to call special attention to >the fact that CLOS (like Flavors, its predecessor) permits one: >(1) To define and redefine (modify) a class's methods incrementally, ... >(2) To redefine (modify) a class definition in any way without textual >modification or recompilation of its methods. Hence, one can add or >remove superclasses and slots just as easily as methods. Smalltalk-80 also lets you do this. C++ also lets you do this. You just have to type "make" afterwards. :-) I agree with Lawrence; incremental program development is very nice. Ralph Johnson - University of Illinois at Urbana-Champaign