例えば「AB」という概念があった時, 「ABAB」「ABのAB」「ABに関するAB」という概念も成立しうる場合, その概念は「メタAB」と呼べそうである.
- データに関するデータ=メタデータ (そのデータの名前, サイズ, 作成者, 最終更新日時など)
- 情報に関する情報=メタ情報 (その情報が何のために役立つかといった情報など)
- プログラミング方法をプログラミングする=メタプログラミング (テンプレート, DSL (ドメイン特化言語) など)
- 変数であることを明示するための変数=メタ構文変数
- クラスのクラス=メタクラス (クラスを構成している要素, 例えばメンバ変数, メンバ関数, 継承関係といった情報をインスタンスとして扱えるようにクラス化したもの)
- 言語を記述するための言語=メタ言語 (XHTML, RSS などの具体的な言語を定義するために XML がある)
- メタモデル=モデル (クラス図, シーケンス図など) を構成する要素をモデル化したもの
- メタ文字=文字を構成するための文字 ("ネ" と "申" で "ネ申" ……という意味ではなく, Unicode で 0xFFFF を超えるコードポイントを表現するために使われる「サロゲートペア」など)
あたりがぱっと思いつくけれど, 身近な例でも応用できないだろうか.
意外と難しい.
ツイートシェア