開発
2013/4/2
コンパイル時メタプログラミングが出来る言語
mima
ソースコードを生成することをメタプログラミングと言ったりしますが、
コンパイル時にメタプログラミングが出来る言語がいくつかあります。
Common Lisp、Scheme
Lispのマクロは強力で、それはまさにコンパイル時メタプログラミングです。
マクロのために、あんな「人がASTを書くような」構文になっていると言っても過言ではないと思います。
Nimrod
あまり有名ではありませんが、ASTマクロを持っています。
「ASTを受け取り、ASTを返す関数」を定義する感じで、ASTマクロを定義します。
Lispよりは手続き型的にマクロを書けます。
D
言わずと知れたD言語です。
mixinとCTFEを使うことによって、コンパイル時メタプログラミングを実現します。
上の2つと違い、ASTではなく文字列主体で行うため、
ASTで操作したい場合は自分で構文解析をする必要があります。
NimrodみたいなASTマクロが入ってくれれば・・・
担当:美馬(D言語にASTマクロが欲しいです・・・)