6 votes

Le tout premier compilateur clojure?

Clojure est principalement écrit en Clojure, mais il a fallu qu'il existe une "première" version d'un compilateur Clojure qui ait été écrit dans quelque chose d'autre, probablement Java.

Le code de ce compilateur est-il disponible quelque part ?

Mon intérêt est purement académique, non productif, j'aimerais voir comment Rich Hickey a géré le problème de la poule et de l'œuf.

10voto

amalloy Points 29125

Le compilateur Clojure est écrit en Java, pas en Clojure. Donc la version actuelle est celle qui satisfera votre curiosité. Bien sûr, il est raisonnable de dire que les macros font partie du compilateur, et qu'elles sont en effet écrites en Clojure, mais elles ne sont pas pertinentes pour le problème de l'oeuf ou la poule que vous mentionnez, qui est résolu en ayant le compilateur en Java.

5voto

Don Stewart Points 94361

Le bootstrap du compilateur est un problème courant lorsque vous écrivez votre compilateur dans le même langage que celui que vous compilez.

Dans le cas de Clojure, cependant, le compilateur est écrit en Java, donc aucun jeu compliqué n'est nécessaire.

Pour une référence historique amusante, GHC, le compilateur Haskell (écrit en Haskell), était initialement compilé via Lazy ML.

4voto

rplevy Points 2319

Pas sûr si cela concerne vos intérêts, mais Rich avait travaillé initialement sur un langage appelé DotLisp et pour cela, il avait commencé par étudier JScheme, qu'il avait utilisé comme base du code original et qu'il avait finalement entièrement remplacé.

DotLisp est ici : http://dotlisp.sourceforge.net/dotlisp.htm

JScheme est ici : http://jscheme.sourceforge.net/jscheme/main.html

(Anecdote : l'un des auteurs de JScheme est le professeur de Brandeis Tim Hickey, aucune relation connue avec Rich.)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X