Eyes, JAPAN Blog > コンパイル時メタプログラミングが出来る言語

コンパイル時メタプログラミングが出来る言語

mima

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

ソースコードを生成することをメタプログラミングと言ったりしますが、
コンパイル時にメタプログラミングが出来る言語がいくつかあります。

Common Lisp、Scheme

Lispのマクロは強力で、それはまさにコンパイル時メタプログラミングです。
マクロのために、あんな「人がASTを書くような」構文になっていると言っても過言ではないと思います。

Nimrod

あまり有名ではありませんが、ASTマクロを持っています。
「ASTを受け取り、ASTを返す関数」を定義する感じで、ASTマクロを定義します。
Lispよりは手続き型的にマクロを書けます。

D

言わずと知れたD言語です。
mixinとCTFEを使うことによって、コンパイル時メタプログラミングを実現します。
上の2つと違い、ASTではなく文字列主体で行うため、
ASTで操作したい場合は自分で構文解析をする必要があります。
NimrodみたいなASTマクロが入ってくれれば・・・

担当:美馬(D言語にASTマクロが欲しいです・・・)

Comments are closed.