構文木を操作できる言語。

PCASTLはALGOL文法で構文木を弄ることを指向している言語です。
id:ranhaさんから。


実行時に抽象構文木のparentが見れるので自己書き換えが可能です。
ソースがbisonのpcastli.yで3691行の1ファイルだけの小さな言語です。

windowsのexeも入ってるので簡単に試せます。
動的スコープで、ローカル変数はどうやらないよう。
引数リストの変数を書き換えは可能だけど、引数の省略は出来ない。
関数の呼出元が分かったりすると面白いなぁ思うのですがそれはなかった。
いろいろやりたければ、自分でソース書き換えて使いましょうっていうかんじです。


こういう言語をみると、ユーザー視点で見れていいなぁと思いました。
作る側の視点でしか考えてないのがいけない。
ある程度物をつくったら、使う側に立って物を見るようにしていけばやりやすいのかなぁと思いました。
元は誰か別な人が作って、不満な点を修正して使いやすいようにしていこうとする。
そうすると気持楽なのかなぁと。
よかった。ほっ。