Lexique informatique › Programmation › Métaprogrammation

Métaprogrammation

Programmation Svenska → Mis à jour: 2026-09-23

Du code qui génère, transforme ou manipule d'autre code — soit à la compilation (statique), soit à l'exécution (dynamique).

Spectre : macros C (substitution de texte) → macros Rust/Scala (transformation d'AST) → macros Lisp (le code est une donnée, la forme la plus puissante) → templates C++ → décorateurs Python et __getattr__ → Proxy JS. Les annotations Java et la réflexion forment une catégorie à part.

Utile pour éliminer le code répétitif (Serde, Pydantic, dataclasses), les ORM, le mocking, les frameworks. Le prix à payer : un débogage plus difficile, un support IDE et des traces de pile dégradés, et une tentation facile de surutiliser. Règle classique : écrire le code trois fois avant d'écrire la macro.

← Retour au lexique