[self-interest] Slot initializers

Jecel Assumpcao Jr jecel at merlintec.com
Tue Oct 10 21:39:51 UTC 2000

> Thank you Jacel, you are the fastest man in the universe!
> I didn't yet hit the send button you on my mailer, and I got your answer
> :-)

Hmmm... it will be very hard to keep up this reputation ;-)

Here is my attempt to do so:

> Now, its all much clearer.
> Writing a parser for Self can bring you right to the hospital
> (psychiatry)
> The self syntax is just too human to make it understand to a machine :-)

There are actually only a few problems, but they are very serious ones.
The "." character is the worst, followed by "-" and "|".

> I wrote a parser straight in C++ but I have not yet implemented
> initializers.
> My friend Jura started to write it using bison but, here and there,
> there are some
> things to clear up in out minds.

I decided to test my old tinySelf 0 on this. It went much better than I
could have hoped:

( |john=jim.aSlot=something | )
<0> ::= ( |
john :=
selfSend something
directee jim
resend aSlot
send =
| )
push <0>

This means it interpreted the expression the same way as Self 4. This
is written in C, by the way, and is available for download from the
tinySelf web page:


> Are there some mirrors where I can get Using_Self_SPARC.tar.gz ?
> www.sun.com in just too slow (~50 b/s) and breaks the connection too
> often (I fear data corruption)
> Jacel: can you put it on your web server ?

My server is connected to the web using a 33kbps modem, so I don't think
this would do you much good. I'll soon be selling CD-ROMs including
this (and several other free Smalltalks) in case there are other people
out there with the same problem.

If you want to try it anyway, I have just created a smaller version
including nothing but the Self and Demo.snap files:


Note that Self 4.1.2 doesn't run on Solaris 2.5 or older (I am having
to use Self 4.0 in the course I am teaching because of this).

-- Jecel

More information about the Self-interest mailing list