言語

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

現在、Lispインタープリター「Liyad」にコンパイラ搭載を進めている。 まだ、公開リポジトリにはpushしていないが、現在、技術検証用のプロトタイプを作成している。 同インタープリターはJavaScriptで書かれているので、コンパイラといっても、ホスト環境の…

Lispインタープリター「Liyad」における末尾再帰最適化

拙作のLispインタープリター「Liyad」においても、 (無いとLisp処理系として格好が付かないので) 非常に限定的に末尾再帰最適化を実装しています。 Liyadにおける末尾再帰最適化 Liyadでは、単純にASTのS式が特定のパターン(1種類)に合致するときのみ末尾再…

各言語におけるクロージャー

Liyad v0.0.13をリリースしました。 今回のリリースでは、クロージャー(関数閉包)関連のオペレーターが追加になりました。 ($closure (arg1 argN) use (var1 varM) expr) (|-> (arg1 argN) use (var1 varM) expr) ($capture (var1 varM) ($lambda (arg1 argN…