現在、Lispインタープリター「Liyad」にコンパイラ搭載を進めている。

まだ、公開リポジトリにはpushしていないが、現在、技術検証用のプロトタイプを作成している。

同インタープリターはJavaScriptで書かれているので、コンパイラといっても、ホスト環境の言語であるJavaScriptを生成する形だ。

$$defun , $$lambda , $$closure オペレーター(インタープリター版より名前の $ が1つ多い)で関数を定義すると、その関数をJavaScriptにコンパイルする。

実行速度は上々。

(tarai 12 6 0) も 0.数秒 で返ってくるようになった。

今後の課題はエラーとなる(バグが残っている)パターンの修正、インタープリターとの互換性と、ファイルサイズ(約20KB増える)だろうか？