Aller au contenu
uencoder

Metaprogramming

La métaprogrammation consiste à écrire du code manipulant la structure du programme lui-même, générant, modifiant ou analysant du code à la compilation ou à l'exécution.

Objectif

Du code qui génère du code, élevant le niveau d'abstraction et réduisant le code répétitif.

Mécanisme

À la compilation : macros (Rust/C), gabarits (C++), traitement d'annotations (Java). À l'exécution : réflexion (Java/Python), eval, Proxy (JS). Ruby implémente de nombreux DSL par métaprogrammation.

Cas d’usage

  • Génération de code
  • Réflexion
  • Construction de DSL

Termes associés

References