[Q] Does anyone have a radix searchtrieSmalltalkimplementation?

Rob Withers slosher2 at home.com
Tue Aug 1 09:59:01 UTC 2000


Alan,

I had no idea that it was this powerful.  TSpaces and JavaSpaces are
touted as repositories or communications buffers.  I had heard of ART,
but not the same one you mentioned.  I think it was the Adaptive
Resonance Tool, also from CMU.  I think it was a combination of a Neural
net, GAs, and a Selectron style bucket brigade for unsupervised
learning.  It was quite successful, in the lab.  It also used a
Blackboard model to exchange information.

I have a few comments/questions, below...

Alan Kay wrote:
> 
> Mark --
> 
> Yes, I would say that is a very good place to look at and start.
> 
> One of the things that would help the merging of Smalltalk and Linda
> is to see what aspects of Smalltalk can be abstracted by the Linda
> tuple. There are two obvious ones.
> 
> * A tuple can be used as an abstraction for sending and receiving of
> a message, though in Linda it is a little more general and comes out
> as publish and subscribe.

A forwarder that we can use as a perfect proxy would help us hide this,
and treat it as a message send.  I was trying to subclass off of
ProtoObject and the tools didn't like it.

> * The second abstraction is to use the Linda tuple to model
> externalized properties of an object (you don't want to expose the
> instance directly since that ruins encapsulation, but it is quite
> reasonable to think of exposing the kind of values that getters
> expose to pattern recognition and retrieval).

A big conceptual problem that I am having is how to convert or publish
the right (restricted) information of a particular object.  There may be
several different views of an object.  I don't think we have to convert
to a Tuple instance, but rather give Object the protocol for Tuple. 
Another issue is that we have to initialize the match template with type
information.  Of course, that is bi-directional, as well.  As I learn
more about what Linda can do, it struck me that a JIT needs to do this
very thing, when looking up the (receiver | arguments ) tuple for the
right native method.  Could we write the JIT in Slang?

> * A third and more subtle one is that one could conceive of a tuple
> space that only has the exposed end of a stream as its single
> "tuple". Linda matching in such a space could be used to construct
> compilers and other kinds of translators, etc.

Wow!  Really?!  How does this work?  I can almost see that it could walk
a tree, which would be nice.  I'm guessing that you could register the
productions and actions for various tokens that one would find in a
language.  If that stream emits the tokens and does a lookahead, then
the reading and writing of the tokens would trigger various productions,
which would take what it needs from the stream.  This would be fun to
build!  There must be a way to register interest by internal actions for
events.  There must also be a way to add new operations.  Mmmm.

> * A fourth usage would be to model a reasoning tool (like ART) that
> permits both forward and backwards processing. ART's forward
> reasoning was fast enough to allow e.g. views to be made of a model
> without touching the model in any way, just by being able to react
> (event driven style) to the new values (that were tuples in ART)
> being produced by the model process.

I have much reading to do on this.  :)

Currently, Linda is a powerful tool that seems to be looking for a
home.  She is being fed and she's starting to grow in *very* interesting
directions.

thanks,
Rob

> Cheers,
> 
> Alan
> 
> At 1:48 PM -0400 7/31/00, Mark Guzdial wrote:
> >>Could you tell us a little more about full unification in CLOS?
> >>
> >
> >After Bolot ported Mike Teng's Prolog/V to Squeak, but before
> >starting on these book projects, I started exploring using the
> >Prolog unification for LindaTalk, but I didn't get very far.
> >Perhaps that's a start using existing code?
> >
> >Mark
> >
> >--------------------------
> >Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
> >Associate Professor - Learning Sciences & Technologies.
> >Collaborative Software Lab - http://coweb.cc.gatech.edu/csl/
> >(404) 894-5618 : Fax (404) 894-0673 : guzdial at cc.gatech.edu
> >http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html

-- 
--------------------------------------------------
Smalltalking by choice.  Isn't it nice to have one!





More information about the Squeak-dev mailing list