I was sharing some nefarious plans with Dave Thomas yesterday at the DFW PragProg lunch. He later tipped me off to “tinyrb”:http://code.macournoyer.com/tinyrb/, which is awesome. It’s a minimal implementation of Ruby that uses “Ragel”:http://www.complang.org/ragel/, “Lemon”:http://www.hwaci.com/sw/lemon/ and is inspired by “Potion”:http://github.com/why/potion/tree/master. I’ve long had a thing for messing with languages and their implementations, so I quickly ended up at this “great Ragel tutorial”:http://www.devchix.com/2008/01/13/a-hello-world-for-ruby-on-ragel-60/, and then reading about “register machines”:http://en.wikipedia.org/wiki/Register_machine, “context-free grammars”:http://en.wikipedia.org/wiki/Context-free_grammar and “LLVM”:http://llvm.org/.
I accomplished nothing, but diving into a topic is it’s own reward. Here’s what I’ve concluded:
* I’m super green at this stuff. But I want to go to there.
* There’s too much awesome stuff to do out there: tinker with languages, build apps, visualize data, network things, etc.
* “Marc-André Cournoyer”:http://macournoyer.com/ is my hero; not only did he implement tinyrb, but he’s also the guy behind “Thin”:http://code.macournoyer.com/thin/ and “Refactor My Code”:http://refactormycode.com/
Long story short: I need more time.
lol!
You should take a look at Lua if you’re interested in this kind of stuff. There are a couple nice papers online:
Click to access sblp2005.pdf
Click to access ANoFrillsIntroToLua51VMInstructions.pdf