[Pharo-project] Class and Metaclass explanation in PBE
Hi folks. I was reading chapter 13 of PBE and there is something I don't understand. In page 283 it says: "Every metaclass is-a class, hence inherits from Class. Class in turn inherits from its superclasses, ClassDescription and Behavior." page 278, rule 8, it says: "Every metaclass inherits from Class and Behavior." However, if I open a class browser, I see that Metaclass inherits from ClassDescription, not Class. So, I don't understand :( Can anyone clarify me this? Thanks Mariano
2009/10/21 Mariano Martinez Peck <marianopeck@gmail.com>:
Hi folks. I was reading chapter 13 of PBE and there is something I don't understand.
In page 283 it says:
"Every metaclass is-a class, hence inherits from Class. Class in turn inherits from its superclasses, ClassDescription and Behavior."
page 278, rule 8, it says:
"Every metaclass inherits from Class and Behavior."
However, if I open a class browser, I see that Metaclass inherits from ClassDescription, not Class. So, I don't understand :(
Can anyone clarify me this?
The topmost superclass of Metaclass is a ProtoObject class (as for any other class). You can see it yourself: Metaclass superclass superclass superclass superclass now if you take a look, what is the class of the above object, you'll see: (Metaclass superclass superclass superclass superclass) class -> ProtoObject class and now: (ProtoObject class) superclass => Class so, lets roll things back.. ProtoObject class superclass => Class means that ProtoObject object is an instance of class, which inherits from Class. Or, since ProtoObject is class itself, then the 'ProtoObject class' expression should return a metaclass, then you can see that a most basic metaclass inherits from Class. and hence: "Every metaclass inherits from Class and Behavior."
Thanks
Mariano
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
On Tue, Oct 20, 2009 at 10:23 PM, Igor Stasenko <siguctua@gmail.com> wrote:
2009/10/21 Mariano Martinez Peck <marianopeck@gmail.com>:
Hi folks. I was reading chapter 13 of PBE and there is something I don't understand.
In page 283 it says:
"Every metaclass is-a class, hence inherits from Class. Class in turn inherits from its superclasses, ClassDescription and Behavior."
page 278, rule 8, it says:
"Every metaclass inherits from Class and Behavior."
However, if I open a class browser, I see that Metaclass inherits from ClassDescription, not Class. So, I don't understand :(
Can anyone clarify me this?
The topmost superclass of Metaclass is a ProtoObject class (as for any other class). You can see it yourself: Metaclass superclass superclass superclass superclass
now if you take a look, what is the class of the above object, you'll see:
(Metaclass superclass superclass superclass superclass) class -> ProtoObject class
and now:
(ProtoObject class) superclass => Class
Thanks Igor. This was the part I was missing :)
so, lets roll things back..
ProtoObject class superclass => Class
means that ProtoObject object is an instance of class, which inherits from Class. Or, since ProtoObject is class itself, then the 'ProtoObject class' expression should return a metaclass, then you can see that a most basic metaclass inherits from Class.
and hence: "Every metaclass inherits from Class and Behavior."
Thanks
Mariano
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Yeap BTW to get started with your new life :) I suggest you to implement objvlisp http://stephane.ducasse.free.fr/Teaching/Lille/0910-MetaModelisation/ObjVlis... http://stephane.ducasse.free.fr/Teaching/Lille/0910-MetaModelisation/ObjVlis... this way we are sure we are all in sync :) Stef On Oct 21, 2009, at 3:36 AM, Mariano Martinez Peck wrote:
On Tue, Oct 20, 2009 at 10:23 PM, Igor Stasenko <siguctua@gmail.com> wrote: 2009/10/21 Mariano Martinez Peck <marianopeck@gmail.com>:
Hi folks. I was reading chapter 13 of PBE and there is something I don't understand.
In page 283 it says:
"Every metaclass is-a class, hence inherits from Class. Class in turn inherits from its superclasses, ClassDescription and Behavior."
page 278, rule 8, it says:
"Every metaclass inherits from Class and Behavior."
However, if I open a class browser, I see that Metaclass inherits from ClassDescription, not Class. So, I don't understand :(
Can anyone clarify me this?
The topmost superclass of Metaclass is a ProtoObject class (as for any other class). You can see it yourself: Metaclass superclass superclass superclass superclass
now if you take a look, what is the class of the above object, you'll see:
(Metaclass superclass superclass superclass superclass) class -> ProtoObject class
and now:
(ProtoObject class) superclass => Class
Thanks Igor. This was the part I was missing :)
so, lets roll things back..
ProtoObject class superclass => Class
means that ProtoObject object is an instance of class, which inherits from Class. Or, since ProtoObject is class itself, then the 'ProtoObject class' expression should return a metaclass, then you can see that a most basic metaclass inherits from Class.
and hence: "Every metaclass inherits from Class and Behavior."
Thanks
Mariano
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (3)
-
Igor Stasenko -
Mariano Martinez Peck -
Stéphane Ducasse