[説明に使用するソースコードの場所]
http://goo.gl/wtkXro
この資料は以下の勉強会にて使用したスライドです。
「ギークエンジニア必見!Lispインタープリター」勉強会 with すごい広島 (http://great-h.doorkeeper.jp/events/16621)
このLisp勉強会で大いに参考にしたのは、Peter Norvig による、「(How to Write a (Lisp) Interpreter (in Python))」です。非常に短いPythonプログラムでLispインタープリターが実装されています。
http://norvig.com/lispy.html
http://norvig.com/lispy2.html
[勉強会の内容]
「プログラマーなら一度はLispを作る」という言葉は有名です。ですが、実際に作ったことがある人はあまり居ないと思います。
理由として「このような技術は実務には関係ない」とか、「作ろうと思っても、簡単に実現可能なほど、まとまった情報が無い」などが考えられます。
この勉強会では、プログラミング言語としてJavaScriptを用い、実際に動作する、古風で小さなLispインタープリターを、段階を追って作成します。JavaScriptによるLispインタープリターの実装は、最初は22行で実装した四則演算インタープリターの説明から開始します。最終的にはLispのマクロをサポートした、147行のLispインタープリターに育て上げます。
なお、Lisp言語を知らない人も多いと思われますので、そのような方向けに、Lisp言語の非常に基本的な部分から説明したいと思いますので、ご安心ください。
Lisp言語の全機能を網羅することはしませんが、この勉強会に参加すれば、Lispインタープリターがどのように動作しているのか、なんとなく分かった状態になることを目指しています。そして、それが分かれば、プログラミング言語を見る目が少し変わると思います。