By the by, I believe Squeak Smalltalk has a 'compiler' written in Squeak that it uses to generate C code which is then used to bootstrap the rest of the language.
On Jul 9, 9:33 am, tmountain <tinymount...@gmail.com> wrote: > > To be safe one often retains a > > stub compiler for some subset of the language written in another > > language, and then implements the rest of the language in the stub > > version. > > This makes a lot of sense. So basically, a subset of Clojure could be > ported to whatever language you'd want to target, and then that could > be used to bootstrap the rest of the language? Sounds like a neat > route to go. > > On Jul 9, 12:18 pm, Daniel Lyons <fus...@storytotell.org> wrote: > > > On Jul 9, 2009, at 10:07 AM, Paul Mooser wrote: > > > > Since clojure is a compiled language, and is going to just end up > > > generating java bytecodes, I wouldn't expect it to be particularly > > > slower if it was written in itself. Maybe that's naive ? > > > It's not naive. This is called self-hosting and it is very common in > > programming language implementation. To be safe one often retains a > > stub compiler for some subset of the language written in another > > language, and then implements the rest of the language in the stub > > version. This is what GHC does for Haskell with Core and PyPy does > > with RPython for Python (though GHC ultimately converts all Haskell > > into core before compiling it). GCC works similarly, first building > > xgcc which is a simple C compiler to compile itself, and then it > > recompiles itself with itself, which is why it's such a time consuming > > process. > > > Another approach is to go whole-hog and depend on a previous version > > of the language to build the language. This is what CMU Common Lisp > > has been doing (not sure if they've changed this recently or not). I > > think Erlang is in a similar situation (the original host language was > > Prolog, believe it or not). > > > Other languages retain a C or Java implementation forever. This is the > > approach of the scripting languages, such as Python and Ruby et al. > > There's nothing wrong with that either. > > > IMO, the principal advantages of self-hosting are that it forces you > > to optimize in places you might not want to and that it gives you a > > nice language to write your language in. :) It's also a good exercise > > in general and it makes it easier for someone who only knows the > > language the ability to work on the language. > > > — > > Daniel Lyons --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---