cloning/invocation

Jecel Assumpcao Jr jecel at merlintec.com
Mon Sep 2 20:25:19 UTC 2002


On Saturday 31 August 2002 06:38, Marcel Weiher wrote:
> The thing to understand is that this isn't "new object creation".  It
> is "definition".  Object A *is* Parametrized Object B with parameters
> c=C and d=D.  Think of it as the difference between putting a literal
> object someplace vs. code that constructs the object.
>
> For example, constructores always create an object.  This is not
> necessarily the case here.  If Parametrized Object B has parameters c
> and d, and I only give it a value for parmeter c, then I don't get a
> fully funcioning instance, I get a new parametrized object with
> parameter d.  (That's the 'currying' aspect I was refering to).

Ok, this *is* different from what I was thinking. The terms you are 
using remind me of "parameter based CAD" systems. Those (starting with 
the original Sketchpad) have paremeters and constraints between 
parameters, however.

> Furthermore, it is always possible to turn any object into a
> parametrized object by adding a slot to it (the slot turns an
> attribute or sub-structure into a parameter), so there is a back and
> forth between levels of abstraction (or meta-levels).  I also call
> this little engine the "AbstractionEngine".

By "adding a slot to it" do you mean modifying the original object or 
creating a new ID that points to the old object and also to the slot?

> The back-and-forth aspect also means that you can create long
> reference chains, with a parameter being introduced and bound over
> and over again.  There probably needs to be a mechanism to simplify
> such chains, but that problem is a long way off for now.

It should be a simple problem to flatten these chains, though as I 
indicated in my question above the exact nature of these chains isn't 
clear to me.

> So the debugger synthesizes a view of the system that doesn't exist
> otherwise?

Exactly. Though note that a Self system implemented as a simple 
interpreter would have that view actually exist as the interpreter's 
state. On the other hand, in a Squeak implemented as a sophisticated 
Jitter the "blue book" view wouldn't normally exist and have would have 
to be faked by the debugger. So this is an implementation issue, not a 
language one.

-- Jecel



More information about the Squeak-dev mailing list