и добавлю - если язык не поддерживает развитые средства кодогенерации (ну вы знаете, все эти убогие языки без макросов), то тривиально реализовать препроцессор с любым желаемым синтаксисом, генерирующий финальный код
товарищи керниган и ричи придумав язык цэ быстро поняли, что они устанут тыкать кнопки и прилепили к нему отдельно тогда препроцессор.
ну и кто копался в ассемблере знает, что там просто никуда без макросов. на pdp11 он даже назывался macro-11...