I try to understand the underlying model for object, class, metaclass
(source excerpt at the end of the mail). Not easy...

I can't find a suitable definition for the ??? below.

Extracted from rexxref :

5.1.1
The Object class is the root of the class hierarchy.
The instance methods of the Object class are, therefore, available on all
objects.
[JLF] The class methods of the Object class are ???

5.1.2
The Class class is like a factory that produces the factories that produce
objects. It is a subclass of the
Object class.
The instance methods of the Class class are also the class methods of all
classes.
[JLF] The class methods of the Class class are ???

4.1.4
A metaclass is a class you can use to create another class. The only
metaclass that Rexx provides is .Class, the Class class. The Class class is
the metaclass of all the classes Rexx provides. This means that instances of
.Class are themselves classes.
[JLF] The instance methods of a metaclass are ??? : [proposition] the class
methods of all the classes associated to this metaclass.
[JLF] The class methods of a metaclass are ???


What is a scope ? (I see scopes and metaClassScopes in the source excerpt).

Is there any publication that gives a big picture of this data model ?
In particular, I try to put in words the actions done by these methods :
~instanceMethods
~methods
~send


Source excerpt :

ObjectClass.hpp
  class RexxInternalObject : public RexxVirtualBase{
     inline RexxBehaviour *getObjectType() { return behaviour; }
     -----
     RexxBehaviour *behaviour;         /* the object's behaviour
*/

  class RexxObject : public RexxInternalObject {
     inline RexxBehaviour *behaviourObject() { return this->behaviour; }


RexxBehavious.hpp
 class RexxBehaviour : public RexxInternalObject
 {
   inline RexxTable  *getMethodDictionary()   { return
this->methodDictionary; };
   RexxIdentityTable  *scopes;           /* scopes
table                      */
   RexxTable  *methodDictionary;       /* method dictionary
*/
   RexxClass  *owningClass;            /* class that created this object
*/
   RexxTable  *instanceMethodDictionary; /* methods added via
SETMETHOD       */


ClassClass.hpp
 class RexxClass : public RexxObject {
    RexxTable         *classMethodDictionary; // class methods specific to
this class
    RexxBehaviour     *instanceBehaviour; // instances of this class inherit
this behaviour
    RexxTable         *instanceMethodDictionary; // methods added to this
class
    ---------
    RexxClass         *baseClass; // Baseclass of this class
    RexxArray         *metaClass; // Metaclass of this class
    RexxArray         *metaClassMethodDictionary; // Metaclass mdict
    RexxIdentityTable *metaClassScopes; // Metaclass scopes
    ---------
    RexxArray         *classSuperClasses; // The superclass and any
inherited mixins for class behaviour
    RexxArray         *instanceSuperClasses; // The superclass and any
inherited mixins for instance behaviour
    ---------
    RexxList          *subClasses;         // our list of weak referenced
subclasses


Jean Louis
------------------------------------------------------------------------------
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts. 
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to