Директивы компилятора


Комментарии

Помимо описаний и операторов в программах на языке Паскаль могут использоваться комментарии.

Комментарии не выполняют никаких действий и используются только как некоторый поясняющий текст для программистов. Комментарии помещаются в фигурные скобки (« { » и « } ») и могут содержать произвольный набор символов (в т.ч. и буквы кириллицы). Компилятором комментарии игнорируются, поэтому они могут быть вставлены в любое место программы.

Пример:

var x: integer; {описали переменную}

begin

readln(x); {запрашиваем у пользователя значение x}

x:=2*x; {увеличиваем x в два раза}

writeln(x); {печатаем новое значение x на экране}

end.

Рекомендуется комментарии использовать для пояснения сложных блоков операторов, а также в тех случаях, когда исходный текст программы будет использоваться другими программистами.

Кроме того, комментарии могут оформляться с помощью скобок « (* » и « *) ».

Также стоит отметить, что компилятором игнорируется любой текст, записанный после точки (т.е. за программой).

В текст программы могут быть вставлены специальные директивы для компилятора. Такие директивы задают тот или иной режим компиляции.

Директивы помещаются в скобки «{$ » и « } ». От комментариев они отличаются тем, что сразу же за открывающейся фигурной скобкой следует знак $. Внутри скобок указывается, какую опцию следует включить или отключить.

Подробнее с директивами компилятора знакомство будет осуществляться в процессе изложения материала. Здесь же приведем лишь несколько примеров.

Вспомним логические выражения. Не всегда такие выражения требуется вычислять полностью – в некоторых случаях результат может стать уже известным заранее. Например, рассмотрим следующее выражение:

(3=7) and ( sin(pi/7)*cos(5*pi/6)<4/7+0.03 )

Вычислив левую от ключевого слова and скобку, получим False. Далее, на первый взгляд, необходимо вычислить правую от and скобку. Но вспомним, что оператор and возвращает истину только в том случае, когда оба операнда истинны. Однако левый операнд ложен. Следовательно, получаем: результатом выражения будет False независимо от того, какой результат будет получен в правой от and скобки.

В Паскале вычисления логических выражений заканчиваются тогда, когда окончательное значение становится понятным. Т.е. для предыдущего выражения правая скобка вычисляться не будет. С одной стороны, это позволяет избежать ненужных вычислений, а следовательно, и ускоряет время выполнения программы. Но, с другой стороны, в практике можно столкнуться с ситуацией, когда логическое выражение необходимо вычислить полностью, независимо от того, известен ли уже конечный результат или нет (например, если в выражении осуществляется вызов какой-либо функции, которую обязательно необходимо выполнить).

Принудить компилятор выполнять логические выражения полностью может директива {$B+}. Вернуть затем компилятор к обычному режиму можно с помощью директивы {$B-}.

Пример:

var t: boolean;

begin

{$B+}

t := (3=7) and ( sin(pi/7)*cos(5*pi/6)<4/7+0.03 );

{$B-}

end.

 

В завершение пункта отметим, что в одних скобках можно перечислить через запятую сразу несколько директив компилятора:
{$I-, Q+}.