Makro
Więcej informacji
- Twórca
- IBM (Forrest Parry)
- Rok
- lata 60.
- Typ
- Technologia kartowa
- Spec
- ISO/IEC 7811
Kod, który generuje kod. Preprocesor C (#define), makra s-wyrażeń w Lispie i Scheme, deklaratywne i proceduralne makra Rusta. Potężne i niebezpieczne.
Makra w C to podstawianie tekstu (słynnie podatne na błędy — kolizje nazw, kolejność obliczania). Makra Lispa operują na AST, więc są higieniczne i mocne. Rust ma macro_rules! (deklaratywne) oraz makra proceduralne (dla derive, funkcyjne, atrybutowe). Współczesny pogląd: makra to „ostateczność" — nadużywane czynią kod nieczytelnym. Metaprogramowanie szablonów w C++ jest technicznym krewnym, ale oficjalnie makrami nie jest.