什么是最好的Scheme解释器或编译器?

嘿大家,我想开始使用计划,我有两个问题。 首先,你会推荐使用一个解释器或一个编译器的计划,为什么? 其次,你会推荐哪种解释器或编译器,为什么? 谢谢!

对于初学者来说,我会强烈推荐DrRacket (以前称为Dr. Scheme),因为它给你提供了一个非常好的工作环境,支持Scheme的许多方言,并给出了很好的失败和debugging信息。 我相信Scheme的大部分实现都是解释器,尽pipe可能有一个编译器在那里。

如果你是像我这样的命令行迷,那么你可能会考虑的另一种select就是直接运行球拍解释器,这与Dr.Retet基本上是一样的,但没有graphics环境和命令行界面。 或者,用#! /usr/bin/env racket开始你的源文件#! /usr/bin/env racket #! /usr/bin/env racket并使用chmod +x source.rkt来执行它。

我知道你已经接受了答案,但对于这个问题的未来访问者,我推荐鸡计划 。 它往往会产生比mzscheme小得多的可执行文件。 以下面的hello world应用程序为例:

 (define (say-hello name) (print (string-append "Hello, " name)) (newline)) (say-hello "Earthling") 

用mzc编译–exec mztest hello.scm:3.3M

用csc编译hello.scm -o ctest:16k

如果你是在图书馆的支持下,鸡提供鸡蛋无限 ,就像PlazT的mzscheme(或gemruby)。

我会推荐Gambit-Cscheme:

  • 这是符合R5RS的。
  • 它有一个解释器和一个编译器。 你也可以编译成ANSI C
  • 它是开源的。
  • 它是便携式的。 (它运行在Linux,Windows,Mac OS X甚至iOS上。)
  • 它具有简单的外部function接口(FFI)。

粗略的检查显示,鸡似乎不令人满意,而Bigloo可能是一个严重的竞争者。 但我不能太多评论他们。

我build议不要担心它是作为编译器,解释器还是它们的组合来实现 – 特别是在开始时,帮助文件的质量(例如一个例子)将远远超过它的实现方式。

至于哪一个, PLT计划是我最常使用的(目前为止)。

PTL计划已​​经重新命名为Racket( http://racket-lang.org/ ),但它仍然几乎相同。 Dr.Retet是一个非常漂亮的开发环境,并且在Scheme中写下你所需要的只是你文件顶部的#lang scheme