real metalevel (was: blue ideas)
Jecel Assumpcao Jr
jecel at merlintec.com
Mon Aug 26 22:03:18 UTC 2002
On Monday 26 August 2002 09:53, Marcel Weiher wrote:
> On Tuesday, August 20, 2002, at 10:06 Uhr, Alan Kay wrote:
> > and some action somewhere between instantiation and cloning that
> > would work better
>
> I am still swimming a bit on that one. There is plain "invocation",
> supplying the required arguments and getting a result. But what is
> the result? Either (a) "p-object + params" or (b) "result of some
> message sent to p-object + params".
>
> Answer (a) is closer to normal instance creation, (b) is closer to
> method invocation.
In (a) you might have either p-object modified by the parameters or a
clone of p-object modified by the parameters. The latter is, as you
say, like instanciation while the former is like assignment (another
direction I was interested in exploring).
> Then there is currying, which is "p-object + some params", clearly a
> variant of (a). Interestingly enough, this would be considered a
> refinement step similar to subclassing, but it could also be
> considered partial instantiation.
Beta uses these similarities to lump everything into a single "pattern"
construct.
> Existing method invocation is a special case of (b): the method is a
> parametrized object, the method-context holds the parameters, it is
> then sent the "value" message. This definition is, of course,
> recursive, but that doesn't bother us, we just cut the recursion off
> at the primitive level.
Unless we don't care about reentrant methods, we had better copy them
before sending "value". So, once again, this is like instanciation.
> > We need a complete (or darn close) and real metasystem.
>
> How do we know when we have a complete metasystem? There are too
> many different directions in wich we can abstract. Anyway, the only
> credible candidate I've seen so far is the research done in software
> architecture. They start off with "components" and "connectors", and
> then refine from there.
A complete metasystem would allow us to implement Squeak in Squeak. We
don't have that now - we can implement *another* Squeak in Squeak,
which isn't the same thing!
-- Jecel
More information about the Squeak-dev
mailing list
|