Свертка констант
Свертка констант – оптимизация в компиляторах, уменьшающая избыточные вычисления, путем замены константных выражений на их значения.
Пример
Вид на уровне кода
До оптимизации:
def main() -> None:
x: int = 1 + 3 * 2
После оптимизации:
def main() -> None:
x: int = 7
Вид на уровне синтаксических деревьев
Алгоритмически в синтактическом дереве необходимо искать узлы дерева одного уровня (т.е. имеющие общего предка), содержащие только числовые константы. Тогда вышестоящий узел можно будет свернуть до числового литерала. В процессе рекурсивного обхода дерева происходит свертка всех константных выражений.