メタメタ

メタプログラミングとは何か?

という話が最近身近で話題になった. 大体, プログラミングの上に載っている高次の何かっぽいことである気がする.

その時の結論としては, 自己言及的なプログラミングという話になったが, それはオートプログラミングとでも呼ぶべきでは? と思ったり思わなかったり.

そもそも meta とは何なのかと調べてみると, http://en.wiktionary.org/wiki/%CE%BC%CE%B5%CF%84%CE%AC を見ると大体 after という意味があるらしい.

??

メタプログラミングって先に処理されるようなイメージがあるのに after?

めたほげというのは, ほげの存在を前提として存在するものという発想で, 転じて高次のという意味になったっぽい.

しかし, 直感に合わない気がするし, その辺がメタプログラミングの怪しさにもつながっているのかもしれない.