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の各種実装

MzScheme, Racket (PLT Scheme)

schemeって色々あるけど、こういう風に分類されると存在価値がよくわかる。CへのコンパイラとしてはChickenがGambitの競争相手になるんだろう。Chickenの方がコミュニティー指向で、パッケージとかも充実しているようだ。Stalinは確か最適化の博士号研究プロジェクトで、汎用言語ではない。でもCより速いコードを叩き出す、とかいうベンチマークを見た記憶がある。

Gambitの実用例

実に色々な使われかたをしている

このiPhoneゲームはJobsの「多言語からのコンパイラ禁止令」に存在を脅かされたが、アップルが折れたので助かったようだ。

Gambitの目的

  • R5RSに準じたポータブルで高速な言語。
  • 実用的なアプリケーションとさらに複雑な言語を作ることを可能にする。
  • プログラマの邪魔にならない

あれま13ページ目で時間切れ。この先は時間がるときに追加していくので、関心のある方はたまに戻って見てください。それよりか、原文をダウンロードして見ることを勧めます:
http://www.iro.umontreal.ca/~gambit/Gambit-inside-out.pdf (23mのPDFファイル)