Macro
Una macro expande código en tiempo de compilación, posibilitando la metaprogramación: código que genera código, evitando duplicación y código repetitivo.
Propósito
Transformación de código en tiempo de compilación, eliminando el código repetitivo e implementando DSL.
Mecanismo
Macros de C: sustitución textual (preprocesador). Macros de Rust: macros higiénicas que se expanden a AST. Macros de Lisp: el código como datos. JS: plantillas etiquetadas. Las macros son más flexibles que las funciones pero más difíciles de depurar: usar con cuidado.
Casos de uso
- Generación de código
- Construcción de DSL
- Eliminación de código repetitivo