Lispインタープリター「Liyad」へのコンパイラ搭載(作業中)

現在、Lispインタープリター「Liyad」にコンパイラ搭載を進めている。
まだ、公開リポジトリにはpushしていないが、現在、技術検証用のプロトタイプを作成している。

インタープリターはJavaScriptで書かれているので、コンパイラといっても、ホスト環境の言語であるJavaScriptを生成する形だ。
$$defun, $$lambda, $$closure オペレーター(インタープリター版より名前の$が1つ多い)で関数を定義すると、その関数をJavaScriptコンパイルする。

実行速度は上々。
(tarai 12 6 0)0.数秒 で返ってくるようになった。

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