В Турбо Паскале выполняется несколько типов оптимизации кода компилируемой программы с целью повышения ее быстродействия и уменьшения объема занимаемой памяти.
Свертывание констант.
Если операндами выражения являются константы ординального типа, то выражение вычисляется в период компиляции. То же относится к функциям abs, sqr, succ, pred, odd, lo, hi, swap, если их аргументами являются константы ординального типа.
Пример 1.
Vark : integer;
Begin
k:=abs(-15)+sqr(7)-6*12;
Для выполняемой программы записанный в исходном тексте оператор будет заменен оператором k := -23;
Если индексом массива является константа или выражение, состоящее из констант, то адрес элемента массива вычисляется во время компиляции. Например, доступ к элементам a[sqr(7)+2,3*8] и a[61,24] будет таким же эффективным, как и доступ к простой переменной.
Слияние констант.
Если в одном блоке несколько раз встречается одна и та же строковая константа, то в объектном коде программы компилятор разместит только одну ее копию.
Пример 2.
Writeln('Введите значение ','x =');
................................
Writeln('Введите значение ','y =');
................................
Writeln('Введите значение ','z =');
................................
Для объектного кода программы это эквивалентно фрагменту
ConstS = 'Введите значение ';
Begin
Writeln(S,'x =');
................
Writeln(S,'y =');
................
Writeln(S,'z =');
................