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 -~----------~----~----~----~------~----~------~--~---