minilang

(2024.9) 進捗が芳しくなく、改めて Lisp インタプリタを制作。netsphere-labs/my-lisp: A small Lisp interpreter

これは何か

前橋和弥氏の「プログラミング言語を作る」に触発されて作った, 小さなプログラミング言語のインタプリタです。

プログラミング言語って, 一度は作ってみたいと思いませんか? そう思い, 作ってみました。

途中まではただのオレオレ言語でしたが, 気が変わって, ある程度「実用的」なものを目指してみました。とはいえ, 抽象構文木 (AST) をつくって tree-walking interpreter (構築した AST を順に辿って実行する) で実行するだけの naive な実装です。

ユーザ向けの主な特徴は, 次のとおりです。

Ruby のサブセット

どこまでやれば「実用的」かは自明ではないので, とりあえず, 使い慣れているRuby 互換を目指しました。

minilang v0.7は, CRuby 3.1 のとても非常に小さなサブセットです。ただし, rubyの代替品ではありませんし, 将来もなることはないでしょう。

静的な型検査, 型推論

国際化

文字列は Unicodeベースで作りました。識別子もUnicode文字で付けられます。

その他の特徴

詳しくは, minilangの特徴 ページを見てください。