В computer science под метапрограммированием обычно подразумевают программу, результатом работы которой является другая программа.