memo

ちょっとしたメモ書き(個別表示)

stalin : (2011/11/11)
schemeネイティブコンパイラstalinを使ってみた。
ネイティブコンパイラといっても実態はCへのトランスレータで、実際のネイティブコードの生成はバックエンドのGCCの仕事なんだけど。

というわけで中間コードである生成されたCのコードを見たんだけどさっぱりわからん。
やはりあれは人間が読むものではなさそうだけど、なんでもコンパイル時に可能な限り型推論して、極力実行時の型チェックを減らしているらしい。
思ったんだがCへのトランスレータじゃなくてOCamlへのトランスレータなら、型推論もGCもクロージャもホスト言語であるOCamlの物が使えそうだからかなり手抜き実装できないだろうか。
ocamloptでネイティブコンパイルも可能。
動的型付けじゃなくなるという問題はあるけど、まあホスト言語の機能をそのまま使うなら制約も色々あるだろうし費用対効果的には完全なLisp(Scheme)じゃなくて、単にLisp風S式で書けるOCamlのようなものを目指すべきだろうな。
まあOCamlの文法から開放されるだけでも個人的には嬉しいけど。

: back