ASTとC式について雑感

id:h_sakurai:20071017
ソースコードそのままの表現が構文木、意味のある部分だけを抜き出した表現*1が抽象構文木だと認識してるけど、正直あまり明確な区別がなさそう。自分は構文木≒抽象構文木って認識だったりします。
結局のところ抽象構文木ソースコード*2もしくはプログラム*3を表現するための構造であって、桜井さんのC式もやっぱりそれらを表現するための一形式である以上、抽象構文木であることには変わりないかなーとは思います。


ただ XML における DOM と E4X の違いのように、構文木モデルおよび構文木操作メソッドなどなど、その抽象構文木APIレベルでの差に関しては議論の余地があると思います。Lisp や Dylan のマクロも結局のところ構文木の操作に関して優れているわけですし。
その観点から考えると、C式は JavaScript 上でそのまま記述できる点が優れてる点の1つかなと思っていたり。


C式がASTかどうかを気にするより『このASTは使いやすいよ』ってアピールするほうが健全かな? とか隅っこのほうから言ってみるテスト。


 

*1:どこに意味があるとみなすかは議論の余地があるけど

*2:つまりテキストとして記述されているプログラム表現

*3:実行に際して意味のある命令の構造