公式ページ
Gauche - A Scheme interpreter
特徴
- R5RS準拠のScheme方言である。なお、Gaucheとはフランス語で"左"を意味する。
- 紫藤のページでは「純粋なSchemeとは言えない」と言う事で大方意見の一致を見ている。従って、Schemeのサブページに配置せず、独立したページとした。
- 具体的には、GaucheとはScheme+Common 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起動画面
|
|
起動画面、とは言っても何も無くシンプルである。
しかしながら、スクリプト処理系としてOSとやり取りする以上、余計な出力は邪魔である。
従って、この設計は正しい。
なお、起動コマンドは
gosh
である。
|
Googleに於けるGauche開発者、川合史朗氏の講演
|
|