第一个clojure编译器?

5 clojure

Clojure主要是用Clojure编写的,但是必须有一个"第一"版本的clojure编译器,用其他东西编写,可能是Java.

该编译器的代码可以在任何地方使用吗?

我的兴趣纯粹是学术性的,而不是生产性的,我想看看Rich Hickey处理鸡/蛋问题的方式.

ama*_*loy 9

clojure编译器是用java编写的,而不是用clojure编写的.因此,当前版本将满足您的好奇心.当然,说宏是编译器的一部分是合理的观点,并且那些确实是用clojure编写的,但它们与你提到的鸡/蛋问题无关,这可以通过在Java中使用编译器来解决.


Don*_*art 5

当您使用与您正在编译的语言相同的语言编写编译器时,编译器引导是一个常见问题。

然而,在 Clojure 的情况下,编译器是用 Java 编写的,因此不需要复杂的游戏。

对于有趣的历史参考,GHC,Haskell 编译器(用 Haskell 编写)最初是通过Lazy ML编译的。


rpl*_*evy 4

不确定这是否与您的兴趣有关,但 Rich 最初致力于一种名为 DotLisp 的语言,为此他从研究 JScheme 开始,他将其用作原始代码的基础并最终完全替换。

DotLisp 在这里: http: //dotlisp.sourceforge.net/dotlisp.htm

JScheme 在这里:http://jscheme.sourceforge.net/jscheme/main.html

(冷知识:JScheme 的作者之一是布兰迪斯大学教授 Tim Hickey,与 Rich 没有已知的关系。)