Режим проверки строк-переменных Var-String Checking. Этот режим определяет, как точно компилятор будет проверять значения типа String, передаваемые в процедуры и функции. По умолчанию он имеет значение Strict (точно). При этом строковые переменные, которые передаются по ссылке, должны точно соответствовать типу формальных VAR-параметров, определенных в заголовке вызываемых процедур или функций. Если это не так, то генерируется ошибка выполнения. Если же этот режим имеет значение Relaxed (ослабленная), то длина строкового аргумента передается процедуре или функции без сравнения ее с длиной формального параметра.
Режим проведения логических операций Boolean Evolution. Этот режим определяет метод работы Турбо Паскаля с логическими выражениями, использующими операторы AND и OR. Он имеет два состояния. Первое по умолчанию — Short Circuit (короткие вычисления). При этом коды формируются по следующим правилам:
1. В выражении «a AND b», если «f=False», то значение b не вычисляется.
2. В выражении «a OR b», если «a=True», то значение b не вычисляется.
И наоборот, полное вычисление операндов в логических выражениях производится при втором состоянии — Complete (полностью).
Режим использования сопроцессора Numeric Processing. Язык Турбо Паскаль может генерировать коды, которые управляют работой сопроцессоров 8087 и 80287. Если такой микропроцессор установлен на применяемой ПЭВМ, то программы, использующие эти коды, будут работать быстрее, особенно если в них много математических расчетов, и могут использовать расширенный набор типов с плавающей точкой (см. разд. 9.5).
Режим Numeric Processing определяет, будет или нет использоваться расширенный набор типов данных. Если режим включен в состояние Software (программное исполнение), то нет; если же он — в состоянии 8087/80287, то да. По умолчанию режим Numeric Processing устанавливается в Software.
- 30 -
Режим генерации эмулирующих кодов Emulation. Этот режим работает только в том случае, если Numeric Processing установлен в 8087/80287. При этом можно включать в выполняемые коды эмуляцию или отключать ее. По умолчанию этот режим включен. В этом случае Турбо Паскаль проверяет наличие в ПЭВМ сопроцессора. Если он есть, то используются коды управления сопроцессором. Если же сопроцессора нет в ПЭВМ, то используются коды эмуляции и программа работает медленнее. В том случае, если режим Emulation выключен, a Numeric Processing — в состоянии 8087/80287, программа будет проверять наличие сопроцессора, и если его нет, то ее выполнение прекращается.
Режим генерации отладочной информации Debug Information. Этот режим включает генерацию отладочной информации, необходимой для работы встроенного отладчика. Если он включен (по умолчанию), то компилятор генерирует коды, необходимые для нормальной работы этого отладчика (при этом опция Integrated Debugging в меню пункта Debug должна быть так же установлена в состояние On). Кроме того, эта информация позволяет Турбо Паскалю определять строку, в которой произошла ошибка выполнения программы.
Если режим Debug Information установить в состояние Off, то нельзя будет определить, в какой строке произошла эта ошибка. Более того, нельзя воспользоваться командами из меню пункта Run — Trace into, Step over и Go To Cursor, а также невозможно воспользоваться точками останова, которые задаются в меню пункта Break/Watch.
Запись информации о локальных переменных Local Symbols. По этой опции компилятор определяет, надо ли генерировать информацию о константах и переменных, находящихся внутри процедур и функций программы. Когда опция установлена в состояние On (по умолчанию), компилятор позволяет производить проверку значений переменных внутри процедур и функций во время отладки. Если же опция установлена в состояние Off, то нельзя посмотреть значения переменных и констант в окне Watch. Заметим, что если режим Debug Information выключен, то установки в Local Symbols игнорируются.
Задание условных ключевых слов Conditional Defines. Язык Турбо Паскаль поддерживает условную компиляцию, при использовании которой можно включать или игнорировать как отдельные строки, так и целые блоки в программе. Этой возможностью можно управлять через специальную группу директив компилятора. Они представляют собой структуры IF/ELSE/ENDIF, которые и используются для выделения блоков строк, являющихся в этом случае субъектами условной компиляции.
- 31 -
Можно использовать пункт Conditional Defines для определения ключевого слова при использовании директив $IFDEF или $IFNDEF. Результат этих условных директив зависит от определения слова (см. разд. 3.4).
Определение размеров памяти Memory Sizes. С помощью этой опции можно задать потребные ресурсы памяти для работы программы. Подробно этот вопрос обсуждается в разд. 11.4 и 16.6 и в Приложении 2 (директива $M).
1.3.5.2. Опция Linker (компоновщик). При компиляции программы Турбо Паскаль автоматически компонует все процедуры и функции, которые составляют программу. При этом связываются между собой объектные коды программы и коды модулей-библиотек. Подменю опции Linker имеет два пункта, позволяющих регулировать этот процесс (рис. 1.20).
Рис. 1.20
Режим генерации таблицы распределения памяти Map File. Когда этот режим включен, а опция Destination пункта Compile принимает значение Disk, Турбо Паскаль генерирует на диске специальный текстовый файл, содержащий информацию об откомпилированной программе. Этот файл создается во время компиляции в EXE-файл и носит то же имя, но с другим расширением — .MAP. В этом файле содержится информация о переменных, процедурах и функциях, их адресах при выполнении, объеме занимаемой ими памяти и т.п. Степень детализации этой информации задается переключателем режимов: Off (выключено), Segments (по сегментам), Publics (все глобальные переменные), Detailed (детально). По умолчанию устанавливается Off.
Опция установки буфера компоновщика Link Buffer. По умолчанию Турбо Паскаль загружает все запрашиваемые подпрограммы непосредственно в память ПЭВМ и проводит всю компоновку основной и включаемых подпрограмм в памяти. Однако, если программа
- 32 -
очень большая, то может не хватить памяти ПЭВМ. Тогда появляется необходимость указать среде, чтобы компилятор во время компоновки использовал в качестве своего буфера диск вместо памяти.
Вот это и позволяет сделать опция Link Buffer. Как уже говорилось, по умолчанию Link Buffer находится в состоянии Memory. Поставив указатель на эту опцию и нажав клавишу ввода, можно сменить установку на Disk.
1.3.5.3. Опция установки условий работы среды Environment. При выборе этой опции на экране появляется меню, содержащее комбинацию ключей On/Off, входных параметров и одного подменю (рис. 1.21).
Рис. 1.21
Все они позволяют управлять «поведением» среды Турбо Паскаль.
Опция Config Auto Save. Эта опция задает автоматическую запись конфигурации. Если она включена (On), то на диске сохраняется конфигурация среды разработки на момент выхода из нее. При последующем входе в среду это состояние читается с диска и восстанавливается. Это позволит как бы не прерывать работы в среде. По умолчанию опция находится в состоянии Off.
Опция Edit Auto Save. Эта опция задаст автоматическую запись состояния редактора. Если она находится в состоянии On, то перед выполнением программы ее текст будет сохранен на диске. Это может спасти от потери программы при неисправимой ошибке выполнения (например, при зависании системы). Кроме того, программа будет сохраняться при выполнении команды OS Shell пункта File основного меню. По умолчанию опция находится в состоянии Off.