Class and Metaclass explanation in PBE

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Class and Metaclass explanation in PBE

Mariano Martinez Peck
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


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Class and Metaclass explanation in PBE

Igor Stasenko
2009/10/21 Mariano Martinez Peck <[hidden email]>:

> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Class and Metaclass explanation in PBE

Mariano Martinez Peck


On Tue, Oct 20, 2009 at 10:23 PM, Igor Stasenko <[hidden email]> wrote:
2009/10/21 Mariano Martinez Peck <[hidden email]>:
> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Class and Metaclass explanation in PBE

Stéphane Ducasse
Yeap

BTW to get started with your new life :) I suggest you to implement  
objvlisp
       
        http://stephane.ducasse.free.fr/Teaching/Lille/0910-MetaModelisation/ObjVlispTD/
        http://stephane.ducasse.free.fr/Teaching/Lille/0910-MetaModelisation/ObjVlispDocuments/

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 <[hidden email]>  
> wrote:
> 2009/10/21 Mariano Martinez Peck <[hidden email]>:
> > 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
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project