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

时间:2010-03-26 06:31:43

标签: scheme

大家好,我想开始使用Scheme,我有两个问题。首先,您是否建议使用Scheme的解释器或编译器?为什么?第二,你会推荐哪种解释器或编译器,为什么?谢谢!

5 个答案:

答案 0 :(得分:27)

我知道您已经接受了答案,但对于此问题的未来访问者,我建议Chicken Scheme。它往往比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

如果你在图书馆支持之后,Chicken会提供Eggs Unlimited,就像是针对mzscheme的PlaneT(或者是ruby的宝石)。

答案 1 :(得分:26)

对于初学者,我强烈推荐DrRacket (以前称为Dr.),因为它为您提供了一个非常好的工作环境,支持Scheme的许多方言,并提供非常好的失败和调试信息。我相信Scheme的大多数实现都是解释器,尽管那里可能有一个编译器。

如果你是像我这样的命令行瘾者,你可以考虑的替代方案是直接运行racket解释器,这与Dr. Racket基本相同,但没有图形环境和命令行界面。或者,使用#! /usr/bin/env racket启动源文件,并使用chmod +x source.rkt使其可执行。

答案 2 :(得分:10)

我推荐Gambit-C计划:

  • 符合R5RS标准。
  • 它既有解释器又有编译器。您也可以编译为ANSI C。
  • 它是开源的。
  • 它是便携式的。 (它可以在Linux,Windows,Mac OS X甚至iOS上运行。)
  • 它具有简单的外部功能接口(FFI)。
粗略的检查显示,鸡似乎并不令人满意,而Bigloo可能是一个严重的竞争者。但我不能过多评论他们。

答案 3 :(得分:9)

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

至于哪一个,PLT Scheme是我最常用的({远})。

答案 4 :(得分:3)

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