紫藤のWiki

最近の更新履歴

Gauche


公式ページ

Gauche - A Scheme interpreter

特徴

  • R5RS準拠のScheme方言である。なお、Gaucheとはフランス語で"左"を意味する。
  • 紫藤のページでは「純粋なSchemeとは言えない」と言う事で大方意見の一致を見ている。従って、Schemeのサブページに配置せず、独立したページとした。
  • 具体的には、GaucheとはSchemeCommon Lisp+Perlと言うのが感触。従って、Schemeのサブセットと言うよりSchemeのスーパーセットと言える。
  • Gaucheは「実用的Schemeのインプリメンテーション」が目標との事。逆に言うと、「理論的な」Schemeから「実用的な」Schemeを目指すと、必然的にCommon Lisp等から関数の仕様を持ってこざるを得なかった、とも言えるだろう。
  • Schemeの標準拡張仕様と言えるSRFIのうちのいくつかがビルトインで扱える。
  • その為、GaucheからSchemeをはじめた人間には「他のSchemeでは××と言う関数が無い」等と言う多大な誤解を生じさせている。GaucheはいわゆるSchemeと違って「教育用」ではなく、あくまで「実用に」重きを置いた「特殊な」処理系だ、と言う事がScheme初心者には分かりづらい。
  • 開発者の述懐によると「Perlを置き換えたかった」との事。別な言い方をすると、開発のモティベーションはRubyのそれと非常に近い。
  • GaucheでSchemeのソースをコンパイルするとネイティブコードではなくJavaやCLISPのようにバイトコードへとコンパイルされる。
  • 日本で一番利用者が多いLisp方言だと思われる。
  • 残念ながらWindows用の公式安定版バイナリは存在しない。しかしながら、サーバーサイドの用途がメインなのであまり問題が生じないだろう。
  • ある意味、ポール・グレアムの作成したLisp方言、Arcの最強の対抗馬と言える。

竹内関数でのベンチマークテスト

Intel Core2Duo T7500 2.2GHzで駆動しているLinux上で、
(time (tak 12 6 0))
とした結果は以下の通り。

real 1.069
user 1.060
sys 0.000

同じくバイトコードへコンパイルするCLISPでのコンパイル時の実行速度より若干速い事が見受けられる。

解説書

プログラミングGauche



Gauche起動画面

起動画面、とは言っても何も無くシンプルである。
しかしながら、スクリプト処理系としてOSとやり取りする以上、余計な出力は邪魔である。
従って、この設計は正しい。
なお、起動コマンドは
gosh
である。

Googleに於けるGauche開発者、川合史朗氏の講演


サブページ (1): Gauchebox