web-dev-qa-db-ja.com

最高のSchemeインタープリターまたはコンパイラは何ですか?

皆さん、Schemeの使用を開始したいのですが、2つの質問があります。まず、Schemeにインタープリターまたはコンパイラーを使用することをお勧めしますか?その理由は何ですか?次に、Schemeのどのインタープリターまたはコンパイラーをお勧めしますか?その理由は何ですか?ありがとう!

44
adhanlon

初心者には DrRacket (以前のScheme博士)をお勧めします。これは、作業に本当にいい環境を提供し、Schemeの多くの方言をサポートし、非常に優れた障害およびデバッグ情報を提供するためです。 Schemeのほとんどの実装はインタープリターであると信じていますが、コンパイラーが存在する可能性はあります。

あなたが私のようなコマンドライン中毒者である場合、あなたが検討するかもしれない代替案は racket インタプリタを直接実行することです。これは本質的にはラケット博士と同じですが、グラフィカル環境とコマンドラインインターフェースなしです。または、#! /usr/bin/env racketでソースファイルを起動し、chmod +x source.rktで実行可能にします。

26

すでに回答を受け入れていることは承知していますが、今後この質問にアクセスする場合は、 チキンスキーム をお勧めします。 mzschemeよりも小さいmuch実行可能ファイルを生成する傾向があります。たとえば、次の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のgems)に似ています。

28
Shaun

Gambit-C スキームをお勧めします:

  • R5RSに準拠しています。
  • インタプリタとコンパイラの両方があります。 ANSI Cにコンパイルすることもできます。
  • オープンソースです。
  • ポータブルです。 (Linux、Windows、Mac OS X、さらにはiOSでも動作します。)
  • 単純な外部関数インターフェイス(FFI)があります。

ざっと調べてみると、チキンは物足りないように見えますが、ビグルーは深刻な競争相手かもしれません。しかし、私はそれらについてあまりコメントすることはできません。

10
Ji Han

コンパイラー、インタープリター、またはそれらの組み合わせとして実装されているかどうかを気にしないことをお勧めします-特に、まず、ヘルプファイルの品質(一例)は、実装方法よりもはるかに重要です。

どれに関しては、 PLT Scheme が私が(はるかに)最も頻繁に使用するものです。

9
Jerry Coffin

PTL SchemeはRacketに名前が変更されました( http://racket-lang.org/ )が、それでもほとんど同じです。ラケット博士はシェルを備えた非常に気の利いた開発環境であり、Schemeで書くために必要なのは#lang schemeはファイルの上部にあります。

3
ine