Macro
Une macro développe du code à la compilation, rendant possible la métaprogrammation : du code qui génère du code, évitant duplication et code répétitif.
Objectif
Transformation du code à la compilation, éliminant le code répétitif et implémentant des DSL.
Mécanisme
Macros C : substitution textuelle (préprocesseur). Macros Rust : macros hygiéniques s'étendant en AST. Macros Lisp : le code comme données. JS : littéraux de gabarit étiquetés. Les macros sont plus flexibles que les fonctions mais plus difficiles à déboguer — à utiliser avec précaution.
Cas d’usage
- Génération de code
- Construction de DSL
- Élimination du code répétitif