Макрос
Код, который порождает код. Препроцессор C (#define), макросы Lisp/Scheme на S-выражениях, декларативные и процедурные макросы Rust. Мощно и опасно.
Макросы C — текстовая подстановка (печально известная багами: коллизии имён, порядок вычисления). Макросы Lisp работают с AST, поэтому гигиеничны и мощны. В Rust есть macro_rules! (декларативные) и процедурные макросы (derive, функциональные, атрибутные). Современный взгляд: макросы — «крайняя мера», их избыток делает код нечитаемым. Шаблонное метапрограммирование C++ — технический родственник, но формально не макросы.