Tuesday, February 20, 2007

The Minus Language

It's been more than two months since I posted anything here - obviously the Christmas break sent me to sleep.

But recently I've been prodded back into a more wakeful state again by Darren Smith who has created an esoteric language called Minus. We exchanged a few emails about Minus and his plans to write a self-interpreter for it. I haven't done anything with Minus except to briefly try out Darren's interpreter and some of his example programs but it reminds me of an amalgam of various "one instruction set computers" as described on Wikipedia - mostly like the subleq variant for the core instruction, but with a different branching mechanism plus some extensions to support console I/O and other features.

Anyway, I see today that Darren has now posted details of his first self-interpreter including the observed eigenratio and his analysis to back that up. A big "thumbs up" from me. I hope future authors of new languages take note of this new trend, and also publish a self-interpreter plus matching eigenratio along with the language specifications! :-)

I think it's fair to say Darren's first self-interpreter is optimised more for size than speed. Its eigenratio is just over 87 which seems a bit higher than what I would have thought possible given it's apparent similarity to the OISC/subleq machine. However I'm not volunteering to write a faster version - I'll leave that to him!

Also, awoken from my slumber when it comes to eigenratios, I decided to revisit my original efforts to create a language and self-interpreter with the explicit goal of achieving a "low eigenratio". My latest revision of that project achieves an eigenratio of about 8.138. When I get to the point where I can't find any more easy/obvious improvements (and have tidied up the various bits and pieces) I'll publish it for anybody who wants to have a look - not that it's particularly clever.