Basics

Jack Waugh jack_waugh at yahoo.com
Tue Feb 27 16:49:00 PST 2001


Let me see whether I understand this right.

A message send involves a receiver, a selector and
arguments.  The receiver's meta-object (which can be
the meta-object of more than one object) looks up a
slot whose name (slots have names) equals the
selector.  Would there normally be any inheritance
rules for this lookup?  Obviously if the metaobject
finds such a slot in the receiver, the lookup is done.

Then the metaobject applies the contents of the slot
found by the above described lookup, to the receiver
and arguments, right?  Suppose the slot contains some
more code, an expression written in terms of nested
message sends.  Then the metaobject has to create
another object to be the activation, right?

A very simple exposure of the execution model in its
simplest form (i. e., no modifications from the
default behavior of the metaobjects) would help.

And as with the semantics, what is the simplest
syntax?  This seems Forth-like.  What "words" would
exist in the most straightforward compiler?  I realize
everything is flexible, but where can one start?

My interest is I would like to apply a basic syntax
and semantics from a Self-like or Smalltalk-like
language to a language with only single assignment.  A
slot would start out not knowing its contents.  Any
processes that dependended on said contents would be
blocked.  Once somebody assigned a value to the slot,
the processes could proceed.  Attempts to assign a
different value (reference to a different object) to a
slot that already has a value would be treated as an
error.  One way to address the error possibility is to
say the meta-level has to handle it.  Perhaps at some
level, the basic language should just say that if
there are attempts at multiple assignment, the system
is free to use any one of the assignments as determing
the value of the slot.  In any event, any given slot
has at most one value ever, so the system is
functional.

I thought to handle system evolution, concurrency,
I/O, and nondeterminism by using "oracle" objects and
perhaps a linear stream of "world" objects.  Objects
implicitly containing oracles can act as the terminals
of Bag Channels a` la Saraswat and Khan.  This gives
the effect of the Actor model of Hewitt and Agha
wherever desired.

=====
Jack Waugh
waugh at acm.org
http://acm.org/~waugh/

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/





More information about the Slate mailing list