Многоэтапное программирование ( MSP ) — это разновидность метапрограммирования , в которой компиляция делится на ряд промежуточных фаз, что позволяет генерировать типобезопасный код во время выполнения . [1] Статически определенные типы используются для проверки того, что динамически сконструированные типы являются допустимыми и не нарушают систему типов.
В языках MSP выражения квалифицируются с помощью нотации, которая определяет фазу, на которой они должны быть оценены. Разрешая специализацию программы во время выполнения, MSP может оптимизировать производительность программ: это можно рассматривать как форму частичной оценки , которая выполняет вычисления во время компиляции в качестве компромисса для увеличения скорости обработки во время выполнения. [2]
Многоступенчатые языки программирования поддерживают конструкции, похожие на конструкцию цитаты и eval
, за исключением того, что учитываются правила области действия . [2]