Compiler
КомандаCompiler выводит блок диалога, который позволяет вам установить несколько параметров, влияющих на компиляцию кода.
Эти команды описываются в следующих разделах .
Параметры группы Options. Вы можете использовать блоки проверки из группы Optionsдля указания компилятору того как компилировать ваш код. Ниже даются описания этих блоков.
Параметр Range Checkingвключает или выключает проверку диапазона. Если параметр Range Checkingустановлен, компилятор генерирует код с проверкой индексов массивов и строк (чтобы они не выходили за допустимые границы), а
также контролирует, чтобы при присваивании переменных скалярного типа не было превышения допустимого диапазона. Если проверка завершается
неудачно, программа останавливается с диагностикой ошибки на этапе выполнения. По умолчанию, параметр выключен. Этот параметр эквивалентен директиве компилятора $R .
Параметр Stack Checkingвключает или выключает проверку стёка. Если параметр Stack Checking задан, компилятор генерирует код с проверкой на доступность в стёке пространства для локальных переменных перед вызовом процедуры или функции. Если проверка завершается неудачно, программа останавливается с диагностикой ошибки на этом этапе выполнения . Если параметр выключен (не выбран) , поверка эта проверка не выполняется .По умолчанию, параметр включён . Этот параметр эквивалентен директиве $R .
Параметр I/O Checking включает или выключает проверку на ошибки ввода-
вывода. Когда параметр I/O Checkingустановлен, компилятор генерирует код с проверкой на ошибки ввода-вывода после каждого обращения к вводу-выводу.
Если проверка завершается неудачно, программа прекращает работу с ошибкой на этапе выполнения. Проверку на ошибки ввода-вывода можно также выполнить с помощью системной функции IOResult. По умолчанию, параметр установлен. Этот параметр эквивалентен директиве компилятора $I .
Параметр Force Far Calls позволяет для всех вызовов процедур и функций принудительно использовать дальнюю (Far) модель обращения. Если этот параметр выключен, компилятор будет использовать для всех процедур и функций компилируемого файла ближнюю(NEAR) модель вызова. По умолчанию этот параметр включен. Этот параметр эквивалентен директиве компилятора $R .
Параметр Debug Information разрешает или запрещает генерацию отладочной информации, которая представляет собой таблицу номеров строк для каждой процедуры, отображающую адреса объектного кода в номера исходных строк. Этот параметр эквивалентен директиве компилятора $D.
Эту информацию можно использовать для пошагового выполнения программы и установки точек прерывания при работе с Турбо отладчиком . Параметр Debug Information обычно используется в сочетании с параметром Local Symbols .
Вы должны включить параметр Options|Linker|Debug info in EXE, иначе компилятор будет игнорировать установку этого параметра и вы не сможете отлаживать свою программу. По умолчанию, этот параметр установлен.
ПараметрLocal Symbolsразрешает или запрещает генерацию информации о локальных идентификаторах, которые представляют собой имена и типы всех локальных переменных и констант модуля (все идентификаторы в части реализации модуля и идентификаторы в процедурах и функциях модуля) .
Если этот параметр установлен, Турбо Отладчик будет использовать имена идентификаторов для отладки. (Информация о локальных идентификаторах существенно облегчает отладку). Включение этого параметра освобождает дополнительную память для компиляции, но локальные идентификаторы становятся недоступными для отладчика. По умолчанию, параметр установлен.
Параметр Local Symbolsэквивалентен директиве компилятора&L .
Параметр 286 Codeразрешает или запрещает генерацию кодов процессора 80286. Если этот параметр выключен (блок не выбран), то компилятор будет генерировать только команды процессора 8086, которые могут выполнятся на
любом процессоре семейства 80x86. Если параметр включен, Turbo Pascal использует дополнительные команды процессора 80286 для улучшения
генерации кода, но получающаяся при этом программа не сможет работать на процессорах 8086 или 8088 . Этот параметр не выполняет проверку на наличие процессора 80286 на этапе выполнения. По умолчанию, параметр выключен. Он эквивалентен директиве компилятора $G.
Блок проверки 80x87 Codeпозволяет решить, как Turbo Pascal будет обрабатывать числа с плавающей точкой. По умолчанию, параметр выключен. Данный параметр эквивалентен директиве компилятора &N .
Если вы не хотите, чтобы Turbo Pascal генерировал непосредственно встроенные коды процессора 80x87, требующие работы процессора 80x87, то оставьте этот блок проверки невыбранным. Если требуется, Turbo Pascal будет эмулировать 80x87с помощью программных средств Windows . В вычислениях с плавающей точкой вы можете использовать только 6-байтовые значения типа Real .
Если вы хотите, чтобы Turbo Pascal генерировал непосредственно встроенные коды процессора 80x87, требующие работы процессора 80x87, выберите этот блок проверки. В этом случае вы сможете использовать все действительные типы Real, Single, Double , Extended и Comp.
Если выбирается параметр Windows Stack Frame, компилятор будет генерировать специальные коды пролога и эпилога для программ, работающих в реальном режиме Windows. Если вы хотите, чтобы программы работали
только в защищённом режиме, выключите этот параметр. По умолчанию, параметр включён . Этот параметр эквивалентен директиве компилятора $W .
Параметр Extended Syntax разрешает или запрещает использование расширенного синтаксиса Turbo Pascal, который разрешает использование
операторов пользовательских функций и строк, заканчивающихся пустым символом. Если этот блок проверки не выбран использование таких расширений будет давать ошибку. По умолчанию, параметр включён. Данный параметр эквивалентен директиве $S .
Селективные кнопки Align Data.Селективные кнопки Align Dataпозволяют выбрать, как будут выравниваться не символьные данные. Если выбрать кнопку Word, то данные будут выравниваться только по чётному адресу. В случае выбора кнопки Byte данные будут выравниваться по следующему свободному адресу, независимо от его чётности или нечётности. По умолчанию
принимается выравнивание по словам (кнопка Word) . Параметр эквивалентен директиве компилятора $A .
Параметры Memory Sizes.Параметры Memory Sizes позволяют вам конфигурировать для программы используемые по умолчанию требования к памяти.
Параметр Stack Sizes. Параметр Stack Sizes задаёт размер сегмента стёка (в байтах). По умолчанию, он равен 8K .
Параметр Head Sizeзадаёт размер (в байтах) локальной динамияески распределяемой области памяти для распределения локального окна. По умолчанию, он равен OK .
Параметры String Var Checking.Кнопки String Var Checkingпозволяют сделать выбор в процессе контроля за ошибками в строковых параметрах типа StrictиRelaxed.
Если выбирается кнопка Strict, Turbo Pascal сравнивает формальный строковый параметр типа Varс фактическим передаваемым параметром. Если они не одинаковы, Turbo Pascal выдаёт ошибку компилятора.
Если выбирается кнопка Relaxed, то эта проверка типов не выполняется и в качестве фактического параметра допускается любая переменная строкового типа, даже если её объявленная максимальная длина не совпадает с заданной для формального параметра. По умолчанию, используется кнопка Strict . Данный параметр эквивалентен директиве компилятора $V .
Параметр Boolean Evaluation.Кнопки Boolean Evaluationпозволяют сделать выбор между вычислением булевых выражений по короткой или по полной схеме. В случае выбора кнопки Short Schemeкомпилятор генерирует код, предписывающий прекращение вычисления булева выражения, как только это станет возможным. Например, в выражении if False and MyFunc…функция MyFunc не будет вызываться никогда.
Если выбирается кнопка Complete, компилятор будет вычислять все темы в булевых выражениях. По умолчанию, используется кнопка Short Schemeданный параметр эквивалентен директиве компилятора $B.
Параметр Conditional Defines.Блок вода Conditional Defines используется для определения идентификаторов, на которые нужно ссылаться в директивах условной компиляции. Вы можете разделять несколько определений точкой с запятой (;) , например: TestCode;DebugCode
Linker
По команде Options|Linkerоткрывается блок диалога, который позволяет вам установить некоторые значения, влияющие на компоновку. Данное окно
содержит два набора селективных кнопок и один блок проверки. Ниже приводится их краткое описание .
Селективные кнопки группы Map File.Кнопки Map File используются для выбора создаваемого компоновщиком файла схемы памяти (файл.Map). Возможны следующие варианты: Off,Segmets,PublicилиDetailed. При установках, отличных от Off (Выключено), данный файл помещается в каталог файлов EXEиTPU , определённый в диалоговом окне Options|Directories.
В случае выбора значения Segmentsкомпоновщик будет создавать файл схемы памяти сегментов, состоящий только из списка сегментов в программе , адреса начала программы и предупреждений и сообщений об ошибках на стадии компоновки .
В случае выбора значения Publicкомпоновщик будет создавать такой же файл схемы памяти, что и выше, но заносить в него также список общедоступных идентификаторов, упорядоченный по алфавиту и по возрастанию адресов. Этот тип файла схемы памяти удобно использовать при отладке.
В случае выбора значения Detailedкомпоновщик будет создавать файл схемы памяти, содержащий список сегментов, общедоступных идентификаторов, адрес начала программы и подробную схему сегментов. В этом случае создается наиболее полный файл схемы памяти.
Селективные кнопки группы Link Buffer.Кнопки Link Buffer указывают Turbo Pascal,что для буфера компоновки нужно использовать память (Memory) или диск (Disk). Выбор значения Memory ускоряет компиляцию, но при больших программах может привести к нехватке памяти. Выбор значения Disk дает возможность использовать дополнительную память, но замедляет компиляцию. По умолчанию принимается значение Memory.
Блок проверки Debuq Info in Exe.Блок проверки Debuq Info in Exe позволяет выбрать, будет ли включаться в исполнимый файл информация для откладки. Этот блок проверки должен выбираться в том случае, если вы собираетесь отлаживать программу, пользуясь Турбо отладчиком для Windows.Отмена выбора этого блока уменьшает размер программы. По умолчанию, этот параметр выключен. (Он эквивалентен директиве компилятора командной строки /V).
Для того, чтобы отлаживать исходный код с помощью Турбо отладчика также должен быть выбран блок проверки Options/Compiler/Debug lnfo in EXE.
Дата добавления: 2015-01-13; просмотров: 1048;