IT用語集 › プログラミング › メタプログラミング

メタプログラミング

プログラミング Svenska → 更新: 2026-10-22

他のコードを生成・変換・操作するコード。コンパイル時(静的)にも実行時(動的)にも行える。

その幅は広い。C のマクロ(テキスト置換)→ Rust/Scala のマクロ(AST 変換)→ Lisp のマクロ(コード=データで最強)→ C++ テンプレート → Python のデコレーターと __getattr__ → JS の Proxy。Java のアノテーションとリフレクションは独自の系統をなす。

定型コードの削減(Serde、Pydantic、dataclasses)、ORM、モック、フレームワークに向く。代償はデバッグの難しさ、IDE 支援とスタックトレースの質の低下、使いすぎやすさ。古い格言どおり、マクロを書く前にまず同じコードを3回書け。

← 用語集に戻る