From: Rick DeNatale Date: 2007-10-03T02:19:45+09:00 Subject: Re: need a simplified understanding of Rubinius On 9/28/07, Wilson Bilkovich wrote: > On 9/28/07, James Edward Gray II wrote: > > On Sep 28, 2007, at 10:47 AM, Wilson Bilkovich wrote: > > > > > On 9/27/07, Dave Rose wrote: > > >> ...just curious...how does Rubinius 'boot' itself up and how does > > >> translate ruby into bytecode.... i know a little about parsing and > > >> compilers ... but what makes rubinius different? i hear it is > > >> actually > > >> written in ruby... but that's circular? like MC Ecsher the hand > > >> drawing > > >> a hand?....tia dave > > > > > > Basically what you do is you write a first implementation using > > > language A. Then you use that implementation to create an 'artifact' > > > that is capable of running language B. If you do this carefully, you > > > can then discard everything you wrote in language A. > > > > Isn't there a Scheme book with a Scheme implementation written in > > Scheme in it? If my memory serves, I think I even remember Evan > > talking about this being some of the inspiration for Rubinius. > > > > That is true, yeah. However, our more direct inspiration is the > Smalltalk-80 book. The last section of that book is a Smalltalk VM > written in Smalltalk. Although that was done for pedagogical purposes, AFAIK, the Smalltalk-80 was never actually written in Smalltalk (or at least not executed that way). Squeak's VM is actually written in a language called Slang http://wiki.squeak.org/squeak/2267 which is a small language with a restricted Smalltalk syntax easily translated to C. At one point Rubinius was going down a similar path, but the last time I looked, they had moved on to hand written C, unless it's changed again. -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/