1.3.5. Пункт Options (установка параметров системы)

We use cookies. Read the Privacy and Cookie Policy

Этот пункт позволяет управлять характеристиками компилятора и самой среды Турбо Паскаль. Меню Options содержит семь пунктов (рис. 1.18).

Рис. 1.18

Первые четыре опции — Compiler, Linker, Environment и Directories — имеют еще одно подменю, содержащее несколько директив. Остальные опции необходимы только в специальных ситуациях.

1.3.5.1. Установки компилятора Compiler. Меню, появляющееся при выборе этой команды, показано на рис. 1.19. Пункты в меню

- 27 -

Рис. 1.19

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

Выражение «директива компилятора» означает, что инструкции даются компилятору во время обработки текста программы. Подробно о ее синтаксисе рассказывается в разд. 3.3 «Комментарии и ключи компиляции» и разд. 3.4 «Условная компиляция программ».

Режим проверки диапазонов Range Checking. Когда компиляция программы происходит в режиме Range Checking On (включен), исполняемый код формируется так, что при выполнении программы происходит контроль:

1) выхода индекса массива за его границы;

2) переполнения переменных типа String;

3) переполнения разрядной сетки числовых переменных;

4) некорректная инициализация данных типа «объект».

Как только происходит нарушение, программа прекращает свою работу и генерируется ошибка выполнения (Runtime error).

По умолчанию режим Range Checking находится в состоянии Off (выключен). Однако при отладке программы очень полезно включить этот режим (On), так как это увеличит ее эффективность. После отладки рекомендуется восстановить состояние Off.

Режим проверки стека Stack Checking. Стек — это область памяти, в которой программы обычно сохраняют значения локальных переменных во время работы процедур или функций.

- 28 -

Если программа была откомпилирована в режиме Stack Checking On, то компилятор включает в исполняемые коды программы проверки состояния стека при вызове процедур или функций. Если размер стека не достаточен, чтобы сохранить в нем локальные переменные вызываемой программы, то генерируется ошибка выполнения. По умолчанию этот режим устанавливается в состояние On.

Размер стека в Турбо Паскале по умолчанию принимается равным 16K. Для изменения этого значения используется опция Memory Sizes рассматриваемого подменю настройки компилятора.

Режим проверки ввода-вывода I/O Checking. В этом режиме компилятором генерируются коды проверки ошибок ввода-вывода. По умолчанию он включен, и программа будет генерировать ошибку выполнения. Под ошибкой ввода-вывода подразумевается любое аварийное прерывание при обращении к любому периферийному устройству центрального процессора ПЭВМ (чтение-запись на дисках, печать на принтере, ввод с клавиатуры и т.д.).

Обнаружение такой ошибки, так же как и всех других, обычно прекращает выполнение всей программы. Однако Турбо Паскаль поддерживает специальные средства обработки ошибок ввода-вывода. Подробно они будут описаны в разд. 12.11 «Обработка ошибок ввода-вывода».

Режим генерации «дальних» вызовов Force Far Calls. Этот режим применяется в специальных приложениях программирования. «Дальний» вызов (длинный адрес, Far Call) — это полная адресация для части процедур и функций, размещаемых в разных сегментах памяти отдельно от основного программного сегмента. («Дальний» вызов содержит в себе, кроме относительного адреса сегмента, необходимого внутри 64-килобайтного блока, еще и базовый адрес внешнего сегмента.)

Обычное состояние режима Force Far Calls – Off. При этом компилятор генерирует только «ближние» (near) вызовы. Если же состояние – On, то дальние вызовы генерируются для всех процедур и функций программы. Например, дальние вызовы обязательны при генерации оверлейного кода (см. гл. 18 «Модуль Overlay»).

Режим генерации оверлейных кодов Overlay Allowed. Оверлеи — это части кода программы, которые во время ее выполнения могут перекрываться. Их использование позволяет системе выполнять программы, размер которых больше, чем размер всей доступной памяти в компьютере. Оверлеи загружаются в память в тот момент, когда становятся нужны находящиеся в них программы, и после завершения своей работы выгружаются из памяти, освобождая место для другого оверлея.

- 29 -

Чтобы получить модуль, который планируется использовать как оверлейный, необходимо включить этот режим. По умолчанию состояние Overlay Allowed — Off. Более подробно этот вопрос будет рассмотрен в гл. 18 «Модуль Overlay».

Опция установки единицы обработки данных Align Data. Эта опция управляет режимом доступа к данным в компьютерах на базе микропроцессоров семейства 80Х86. По умолчанию используется режим Word как наиболее эффективный. Рекомендуем использовать режим по умолчанию. Более подробно об этом см. Приложение 2.

Режим проверки строк-переменных 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.

Опция Backup Files. Эта опция используется для задания резервирования файлов. Если она — в состоянии On, то при сохранении файла на диске система предыдущую его версию сохранит с тем же именем, но с расширением BAK. Таким образом, всегда на диске

- 33 -

имеются две последние версии программы. По умолчанию опция находится в состоянии On.

Опция Tab Size. С помощью этой опции можно изменить принятый по умолчанию шаг горизонтальной табуляции, равный восьми позициям. Если нажата клавиша ввода на этой опции, то на экране появится окно ввода, в котором можно указать число в диапазоне от 2 до 16 для установки нового шага табуляции.

Опция Zoom Windows. Эта опция используется для расширения окна. Она позволяет раздвигать окно на весь экран. Действительна только для окон Edit, Watch и Output. По умолчанию находится в состоянии Off. При этом на экране видны одновременно два окна Edit и Watch или Edit и Output.

Опция Screen Size. Эта опция позволяет максимально использовать возможности контроллера дисплея (см. гл.15 «Модуль CRT»), a также выбрать количество видимых текстовых строк на экране: 25 (для всех) и 43 (для EGA) или 50 (для VGA).

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

Рис. 1.22

Их можно изменять, выбрав соответствующий пункт меню. При этом в опциях Include, Unit и Object можно указать по нескольку каталогов, разделяя пути к ним точкой с запятой (как в команде

- 34 -

MS-DOS PATH). При этом Турбо Паскаль будет производить поиск необходимых файлов в текущем каталоге, затем, если они не найдены, осуществлять их поиск последовательно во всех каталогах, указанных для данного типа файла.

Приведем краткое описание каждого пункта опции Directories:

Turbo — указывает компилятору местонахождение системных файлов, в том числе файла конфигурации и Help-файла.

ЕХЕ & TPU — указывает компилятору, в каком каталоге создавать выполняемые коды программ, а также записывать TPU-файлы (модули), создаваемые при компиляции программ, имеющих заголовок UNIT.

Include — указывает компилятору, где искать файлы, определяемые директивой включения в тексте основной программы {$I ИмяФайла}.

Unit — если в программе использовались модули (они указываются директивой USES), то Турбо Паскаль при компиляции будет искать их в каталогах, указанных в этом пункте.

Object — указывает компилятору Турбо Паскаля, где искать OBJ-файлы для программ, использующих внешние ассемблерные процедуры и функции. (Они обычно объявляются в тексте директивой {$L ИмяФайла}.)

Pick file name — указывает имя файла, в котором сохраняется при выходе из среды Турбо Паскаля список последних девяти файлов, с которыми работал редактор (см. команду File/Pick). Имя этого файла по умолчанию принимается TURBO.PCK. Изменить его можно, выбрав курсором эту опцию и нажав клавишу ввода. После этого в окне ввода набирается имя нового файла. При входе в среду содержание этого файла читается системой из текущего каталога, и список Pick восстанавливает свое последнее состояние.

1.3.5.4. Опция установки командных параметров Parameters. Эта опция поможет в разработке и тестировании программ, использующих при запуске в командной строке дополнительные параметры. Для получения их программой в Турбо Паскале имеются специальные функции ParamStr и ParamCount. Если запускается EXE-программа, то она запрашивает параметры, которые вводятся с клавиатуры. А вот если программа запускается на выполнение из среды, то описываемая опция позволяет автоматически решить проблему этого ввода. Задав в окне ввода параметры один раз, можно тестировать программу много раз, не повторяя этой операции.

1.3.5.5. Команды управления файлами конфигурации Save/Retrieve Options. В них записываются все опции и установки, которые устанавливаются в пункте Options главного меню. При этом можно создавать столько файлов, сколько нужно для работы (обычно их число равно числу программных проектов, находящихся в работе или числу пользователей). Для этого используется команда Save Options. Каждый из этих файлов будет иметь расширение .TP (по умолчанию имя файла — TURBO.TP).

Если необходимо установить параметры системы, хранящиеся в созданном файле, то используется команда Retrieve Options.

Команда записи состояния Save options. При подаче этой команды появляется окно ввода, запрашивающее имя, которое должно быть присвоено новому файлу конфигурации. После ввода нового имени нужно нажать клавишу ввода, и файл будет создан. Для того чтобы записать в тот файл, имя которого появилось в окне ввода, можно просто нажать клавишу ввода. При этом система обязательно предупредит о том, что он уже существует, и выдаст запрос на его перезапись.

Команда чтения состояния Retrieve options. Если системе задать выполнение этой команды, то на экране появится окно запроса имени с уже готовым шаблоном: *.ТР. Если нажать клавишу ввода, то на экране появится список доступных файлов конфигурации, находящихся в текущем каталоге. После этого выбирается нужный и нажимается клавиша ввода. При этом в системе все опции перейдут в состояние, указанное в этом файле.

Следующие два пункта главного меню Debug и Break/Watch содержат команды и опции, относящиеся к системе отладки среды программирования Турбо Паскаль.