Я вот как сформулировал Иными словами, это позволяет писать программы, которые будет запускать ваш компилятор, генерируя конструкты, которые будут использованы как часть ваших программ.
Ну для мета-программирования не так много подходов 0 - препроцессор языка на (всякие project lombok и annotation processors тоже тут) 1 - рантайм кодогенерация 2 - темплейты 3 - вейвинг 4 - типы высоких порядков (а больше ничего так и не вспомню)
ну вот лисп это прям метапрограммирование, там на лиспе оперируешь программами на лиспе и тут же их исполняешь, а в плюсах у тебя есть язык шаблонов, который оперирует сиподобным языком, но никак иначе
Я вот как сформулировал Иными словами, это позволяет писать программы, которые будет запускать ваш компилятор, генерируя конструкты, которые будут использованы как часть ваших программ.
Ну тогда почему ТФ не мета-программа? У меня может быть 2 разных интерпретатора. Имхо TF это тоже мета-программа. И со своим компилятоом (то что это обычно интерпретатор мало что меняет)