メタプログラミング ってのはこんなのな。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070604/273453/
今回はメタプログラミングを扱います。メタとはギリシャ語で
「間に,後に,越える」などを意味する接頭辞「meta」に由来する言葉で,
「超越」,「高階」などの意味があります。例えば,Rubyをはじめとする
多くのオブジェクト指向プログラミング言語では,「クラスのクラス」のことを
「メタクラス」と呼びますし,他のオブジェクトを支えるクラス・オブジェクト
などのことをメタオブジェクトと呼ぶこともあります。

 メタプログラミングとは,プログラミングをプログラミングすることです。
そんなことが何の役に立つのかと感じる方もいらっしゃるでしょう。
今回は一見して何の役に立つのか分からないメタプログラミングの能力の一端を紹介します。