Свертка констант
Вычисление констант на стадии компиляции (оно же, "размножение" или "свертка" констант, constant elimination/folding/propagation или сокращенно CP)— популярный прием оптимизации, избавляющий программиста от необходимости постоянно иметь калькулятор под рукой. Все константные выражения (как целочисленные, так и вещественные) обрабатываются транслятором самостоятельно и в откомпилированный код не попадают.
Рассмотрим следующий пример: a = 2 * 2; b = 4 * с / 2; Компиляторы, поддерживающие такую стратегию оптимизации превратят его в: a = 4; b = 2 * с;
Улучшенная свертка констант, в англоязычной литературе именуемая "advanced constant folding/propagation" заменяет все константные переменные их непосредственным значением, например: a = 2; b = 2 * a; c = b - a;
превращается в c = 2;
Свертку констант в полной мере поддерживают все три рассматриваемых компилятора: vc, icl и gcc.