Self in Javascript progress

David Goehrig dave at
Mon Jul 11 17:49:13 UTC 2011

As some of you may know, I've been working on implementing Self in
Javascript (in addition to some build system improvements), and I'd like to
let the list know about the progress.  Today I put together a little demo of
what is currently working and a bit of a post on what is not:

The video is 720p so don't bother trying to watch it on your iPhone :)

It is not a fully functional system yet, it is about 40% of the way there,
and the compiler will require a rewrite before it is ready for actual use.
 But the bones are there and for certain simple statements which invoke
built-in functions you can make little things happen.  The way this thing
works currently is it parses a string into a set of tokens, and then
translates them into a rather LISPish variant of standard JavaScript.  If
you look here:

you will see that I'm seriously abusing some little used features of the
JavaScript language to make it do some rather interesting backflips. In
effect, the entire program consists of lists of strings passed to a self
evaluating function object.  This makes it possible to generate a rather
simple transformation engine which rewrites the self code into a highly
regular form of Javascript that is devoid of the syntatic complexity of its
language family.

The current code base is ~206 lines of JavaScript, and once you work through
how it works in your head, it is surprisingly legible.

If anyone would like to comment, contribute, or recommend some better parser
techniques for the full self syntax, I'd appreciate the guidance.  Mostly I
am working through a set of test cases I extracted by looking at my own Self
objects and bits of the system.  I'm not too concerned about being 100%
compliant at the moment, but simply want to trend towards completeness.

Dave Goehrig

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Self-interest mailing list