Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

YAMM (Yet Another MetaModel)

5 views
Skip to first unread message

Rob Kinyon

unread,
Oct 21, 2005, 9:58:14 AM10/21/05
to Perl6 Language List
I'd like to propose a new metamodel that (I hope) will meet all the
specs @Larry has stated thus far. This metamodel is in two parts.

Part the first:
There is a single object given to P6 called Factory. (No, Steve, there
are no turtles.) Factory has two behaviors, no state, and no classes.
The behaviors are:
* create() - this will create a blank object with no behaviors or state.
* set_behavior( $object, $name, $behavior) - this will assign
$behavior to $object callable by $name.

Part the second:
A set of keywords will be used to generate objects. That set of
keywords would include class and role. These objects do not have
classes - they are -things- in their own right. (Still no turtles,
Steve.) class and role, for instance, would be given the behaviors:
* new() - the "constructor". This wraps Factory.create() and
Factory.set_behavior() appropriately. It's unclear whether each item
new() creates should have the methods within them or aliases to the
class's methods.
* eat() - this would support composition through "has"
* clone() - maybe?
Plus, whatever other behaviors is necessary. The keyword "is" would be
handled by adding in state (which is just a behavior wrapping some
data) to handle method redispatching to another object (the parent
class).

Yes, this is very prototype-ish. But, the metamodel that Steve's been
working on is moving in that direction. Everything is an object
already. Let's just clear some of the cobwebs and provide a truly
clean interface.

Rob

0 new messages