Zum Inhalt springen
uencoder

Metaprogramming

Metaprogrammierung bedeutet, Code zu schreiben, der die Struktur des Programms selbst manipuliert — Code wird zur Kompilier- oder Laufzeit erzeugt, verändert oder analysiert.

Zweck

Code, der Code erzeugt, hebt das Abstraktionsniveau und reduziert Boilerplate.

Mechanismus

Zur Kompilierzeit: Makros (Rust/C), Templates (C++), Annotationsverarbeitung (Java). Zur Laufzeit: Reflexion (Java/Python), eval, Proxy (JS). Ruby realisiert viele DSLs per Metaprogrammierung.

Anwendungsfälle

  • Codegenerierung
  • Reflexion
  • DSL-Bau

Verwandte Begriffe

References