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:<div>
<br></div><div><a href="http://blog.dloh.org/Self-in-Javascript-Video">http://blog.dloh.org/Self-in-Javascript-Video</a></div><div><br></div><div>The video is 720p so don't bother trying to watch it on your iPhone :)</div>
<div><br></div><div>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:</div>
<div><br></div><div><a href="https://github.com/cthulhuology/Self.js">https://github.com/cthulhuology/Self.js</a></div><div><br></div><div>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.</div>
<div><br></div><div>The current code base is ~206 lines of JavaScript, and once you work through how it works in your head, it is surprisingly legible.  </div><div><br></div><div>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.</div>
<div><br></div><div>Dave Goehrig<br clear="all"><br>-- <br>-=-=-=-=-=-=-=-=-=-=- <a href="http://blog.dloh.org/">http://blog.dloh.org/</a><br>
</div>