Mochiの開発経緯

たしか1年半1年くらい前に、何がきっかけかは忘れましたが、ふと、所謂オレオレ言語を作りたいと思いました。 非常に簡単な Scheme 処理系を作ったことがあったので、 Lisp 方言を作ろうと考えました。

Lisp 方言を作る過程で、新しいプログラミング言語を習得するのも良いと思い、最初、Go言語でLisp 方言を作りはじめました。 ところが、Go言語が全く手に馴染まず、遅々として作業が進みませんでした。 理由は不明ですが、私には Go言語は合わなかったようです。単純に馴れの問題かもしれません。 (Go言語には惹かれるものがあるので、何かにまた使おうと思います)

そこで、Go言語を使うのを諦め、astモジュールのある Python で書く事にしました。 まだ馴れていなかった Python 3 を使い、 パターンマッチを備えた Purple というLisp方言のインタプリタを作成しました。

Purple にはそこそこ満足しました。が、Pythonシンタックスが完全に失われていることや、末尾再帰最適化や永続データ構造、並行機能などが組み込まれていないことが、すぐに不満になりました。 そこで、Purple のコードを出発点にし、Python に似たシンタックスで上記の機能を有した Mochi を作りました。