Proposal: Squeak-E = Squeak x Kernel-E
Robert Withers
rwithers12 at attbi.com
Tue Jan 28 01:21:06 UTC 2003
On Monday, January 27, 2003, at 03:19 AM, cg at cdegroot.com wrote:
> Robert Withers <squeak-dev at lists.squeakfoundation.org> said:
>> Why does Array have to be global? It could be located through the
>> meta
>> scope, which is exactly what VW does (I think!).
>>
> Let's define 'global' first :-).
Actually, let's define Array first. ;-)
Array is the name for a object of class Class. Global refers to the
visibility of that named binding inside of the parser and stack. The
key is that it is the naming system, within Smalltalk.
Let's look at a naming system, like an X.500 directory, which takes
names and maps them to objects. Those objects are really capabilities,
and we would prefer to limit whether or not another object has a access
to them.
X.500 and every other naming system has a structure of naming. Some of
these is flat, and if access is filtered, then you are in a quandary
for where you impose that restriction.
A more effective way to ensure limiting access would be to have scopes
of naming, which typically results in a hierarchical naming service and
a path naming mechanism.
In allowing Squeak to access a globally (everyone can get to it)
scoped name->capability, the compiler is using his quite strong and
indisputable capability to provide global naming access to every object
in the system.
A compiler's access to names should be scoped to the context it
operates in. That context is the Class instance, and it's
superclasses. An import of name scopes is the typical way that a
class can get to other names.
> BTW, what's the scoping of names in E? If I say:
>
> def makePoint(x, y) :any {
> ...
> }
>
> who can get at 'makePoint' by name? Furthermore,
>
> def myFile := <file:/etc/profile>
>
> who can do this and where did we get the capability to do so (ok, this
> is an external global namespace, but still an important one to
> consider)?
I have no idea.
cheers!
rob
More information about the Squeak-dev
mailing list
|