[self-interest] parent arguments

Jan-Paul Bultmann janpaulbultmann at me.com
Mon Dec 12 23:43:32 UTC 2011


Sounds like differential inheritance to me. :?
Cheers Jan
On Dec 13, 2011, at 01:23 AM, Jecel Assumpcao Jr. wrote:

> Here is a language feature which I thought we had discussed before, but
> a quick search in this list's archives seems to indicate that we
> haven't.
> 
> Officially Self has something that I am calling "parent arguments" in
> this email. We tell that story that when a lookup finds a method as some
> slot's value, we clone that method object transforming it into an
> activation object by changing some of its slots. This includes adding a
> special argument slot called "self" which is set to the receiver of the
> message. This slot not only behaves like an argument, but it also
> behaves like a parent (which is why it is indicated as :self* in our
> drawings) and allows the method to access all the slots in the receiver.
> 
> There is a similar scheme to explain how blocks work, though the
> :<lexicalParent>* slot doen't have a name that is visible through normal
> message passing (in practice :self* doesn't either since "self" in the
> source text is parsed into a special bytecode instead of as a send one).
> 
> Of course, this isn't at all how things are actually implemented. But it
> is the story we tell about the language.
> 
> I was wondering if it wouldn't be interesting to have this as a real
> feature of Self. Any object could have a parent argument slot and that
> would get filled in with another object whenever it was cloned. So
> 
> w: myWrapper cloneWith: model.
> 
> would do essentially what we can now do with
> 
> w: myWrapper clone. w mParent: model.
> 
> This alternative supposes that myWrapper includes a parent data slot
> called mParent. The difference is that this data slot can be reassigned
> to some other object at any time while the proposed parent argument slot
> can't be changed (not counting reflection) during that object's
> lifetime. My idea is that this captures an interesting usage pattern
> better than assignable parent slots.
> 
> -- Jecel
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.selflanguage.org/pipermail/self-interest/attachments/20111213/80086b96/attachment.html>


More information about the Self-interest mailing list