Saltar al contenido
uencoder

Metaprogramming

La metaprogramación consiste en escribir código que manipula la estructura del propio programa, generando, modificando o analizando código en tiempo de compilación o de ejecución.

Propósito

Código que genera código, elevando el nivel de abstracción y reduciendo el código repetitivo.

Mecanismo

En compilación: macros (Rust/C), plantillas (C++), procesamiento de anotaciones (Java). En ejecución: reflexión (Java/Python), eval, Proxy (JS). Ruby implementa muchos DSL mediante metaprogramación.

Casos de uso

  • Generación de código
  • Reflexión
  • Construcción de DSL

Términos relacionados

References