Python で実装された Lisp 処理系

Purple をある程度実装したところで、同じようなものはきっと沢山あるよねと思い、 Python で実装された Lisp 処理系をぐぐってみたところやはり沢山ありました。 以下、そのリストです。

PythonバイトコードやASTに変換するタイプのもの(初リリース時期)

SICP などに載っている Scheme/Lisp方言 のメタ循環インタプリタのような構文木インタプリタ(初リリース時期)

ちなみに Purple を実装した動機の一つは、Python の復習及び Python 3 の学習でした。 Python をX年近くまともに書いていなかったのでとても勉強になりました。 PythonLisp 処理系を実装した大半の方の動機の一つは、 Python の学習なんではないかなと思います。

言語Xで Lisp 方言を実装するのは、言語Xと Lisp の双方を楽しく学習できるとても良い方法だと思います。 構文解析と実行を通して、言語Xの機能を一通りなめることになりますし、最小限のLispの実装は簡単ですし、動作すると楽しい気分になります。言語学習のお題として優れていると思います。

200X年頃、私も上記の最後の方式で Python で作成したものを作り、ネットに数ヶ月間だけ公開していました(インターネットアーカイブWayback Machine にサイトとソースコードが残っています)。また、他の言語(C/Objective-CScheme など)でも VM から作ってみたりもしました。相変わらずのへっぽこ実装でしたが、それでも、いずれも大変勉強になりました。