BQP

Grass interpreter

を作っています。
Grass-ちょっと草植えときますね型言語(参考link[2])というのは、lambda計算を素にした(らしいし、それっぽい)言語で、brainfuckの類、つまり難解言語の1つです。それっぽいというのも、公式にあるlambda計算からGrassへの変換がまったく理解できていないからです。CPS変換ってなんぞ。(ShibuyaLispでも聞いたけど分からなかった)


で、それをcommon lispで実装しようとしている、というわけです。

環境:
Windows7 home premium
lisp box (GNU Emacs + Clozure common lisp + SLIME)

といっても今のところできているのは関数適用と値を返すところだけで、関数定義とかはこれからです。眠いので、寝てから作ります。以前から頑張って作ろうとはしていたのですが、なんともやるきがたらず全くできていませんでした。[1]は非常に役に立ちました。
将来的にはCで実装とかやってみたいですね。

あとでGithubにあげる、はずです。
https://github.com/fetasteinのどこかにGrassのレポジトリを作る予定です。
ああ、悲しきかな過去の遺産共よ。君たちは忘れない。(コミットの履歴とか)


課題:
関数定義
churchian true and false(おそらく分岐の実現に必要)

というわけで、ブログ書きこみ終了のポーズ! λ(キャピッ☆彡)


参考:
[1]http://d.hatena.ne.jp/higepon/20080605/1212678422: MoshによるGrassインタプリタ実装
[2]http://www.blue.sky.or.jp/grass/doc_ja.html: Grass公式ページ
[3]プログラミング言語を作る 前橋 和弥 (著) 出版社: 技術評論社
[4]プログラミング言語scheme R.ケント.デイヴィグ (著) 出版社: ピアソンエデュケーション