Zum Inhalt springen
uencoder

Macro

Ein Makro expandiert Code zur Kompilierzeit und ermöglicht Metaprogrammierung: Code, der Code erzeugt, womit Duplikation und Boilerplate vermieden werden.

Zweck

Codetransformation zur Kompilierzeit, die Boilerplate beseitigt und DSLs implementiert.

Mechanismus

C-Makros: textuelle Ersetzung (Präprozessor). Rust-Makros: hygienische Makros mit AST-Expansion. Lisp-Makros: Code als Daten. JS: Tagged Template Literals. Makros sind flexibler als Funktionen, aber schwerer zu debuggen — mit Bedacht einsetzen.

Anwendungsfälle

  • Codegenerierung
  • DSL-Konstruktion
  • Boilerplate-Beseitigung

Verwandte Begriffe

References