Marc Feeley教授によるGambit Schemeの実装
Gambit Schemeの作者Marc Feeley教授が同言語の実装に関するプレゼンを出した。
http://www.iro.umontreal.ca/~gambit/Gambit-inside-out.pdf (23mのPDFファイル)
GambitはSchemeからC言語へのコンパイラで、ポータブルでなネィティブなプログラムが組める。
http://en.wikipedia.org/wiki/Gambit_(Scheme_implementation)
Termiteというバージョンもあり、これはErlang風の分散処理を可能にしてくれるSchemeだ。
http://code.google.com/p/termite/
これらの作者がモントリオール大学のMarc Feeley教授。
http://www.iro.umontreal.ca/~feeley/
やはり教授だけあって教えるのも上手く、以前「90分でschemeからCへのコンパイラ」というプレゼンを読んでその分りやすさに感動したことがあった。
http://www.iro.umontreal.ca/~boucherd/mslug/meetings/20041020/minutes-en.html
そのFeeley教授がまたプレゼンを出したので、早速目を通してみた。90ページもあるdeck(米国ではプレゼンのことをこう呼ぶことがある)なので個人的に印象に残ったところだけだけ掻い摘まむ。
Schemeの各種実装
- VMへのコンパイル:Gauche, Guile, Kawa, Scheme48, SCM, SISC, Ypsilon
- native codeへのコンパイル(JIT機能も含む): Chez Scheme, Ikarus, Larceny, MIT Scheme,
MzScheme, Racket (PLT Scheme)
schemeって色々あるけど、こういう風に分類されると存在価値がよくわかる。CへのコンパイラとしてはChickenがGambitの競争相手になるんだろう。Chickenの方がコミュニティー指向で、パッケージとかも充実しているようだ。Stalinは確か最適化の博士号研究プロジェクトで、汎用言語ではない。でもCより速いコードを叩き出す、とかいうベンチマークを見た記憶がある。
Gambitの目的
- R5RSに準じたポータブルで高速な言語。
- 実用的なアプリケーションとさらに複雑な言語を作ることを可能にする。
- プログラマの邪魔にならない
あれま13ページ目で時間切れ。この先は時間がるときに追加していくので、関心のある方はたまに戻って見てください。それよりか、原文をダウンロードして見ることを勧めます:
http://www.iro.umontreal.ca/~gambit/Gambit-inside-out.pdf (23mのPDFファイル)