TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Параметры компилятора и компоновщика 

             IDE позволяет вам выбрать несколько параметров,  влияющих на
        характер компиляции кода.  Для вывода диалогового окна параметров
        компилятора Compiler Options выберите  команду  Options│Compiler.
        Если вы не уверены относительно того, что делает конкретный пара-
        метр, выберите его в диалоговом окне, в строке состояния появится
        поясняющая справка.  Для вывода более подробной информации о дан-
        ном параметре нажмите клавишу F1 или выберите  команду  Help  для
        получения справочной информации обо всем диалоговом окне Compiler
        Options.

        ╔═[ ]══════════════════════Compiler Options═════════════════════╗
        ║  Compiler settings for:         ▒▒Real mode target▒▒▒▒▒▒▒▒▒▒v▒║
        ║───────────────────────────────────────────────────────────────║
        ║ Code generation                                               ║
        ║ ▒[▒]▒Force▒far▒calls▒▒▒▒▒▒▒▒▒[▒]▒286▒instructions▒▒▒▒▒▒▒▒▒    ║
        ║ ▒[▒]▒Overlays▒allowed▒▒▒▒▒▒▒▒[▒]▒Smart▒callbacks▒▒▒▒▒▒▒▒▒▒    ║
        ║ ▒[X]▒Word▒align▒data▒▒▒▒▒▒▒▒▒[▒]▒Windows▒stack▒frames▒▒▒▒▒    ║
        ║ Runtime errors              Syntax Options                    ║
        ║ ▒[▒]▒Range▒checking▒▒▒▒▒    ▒[X]▒Strict▒var-strings▒▒▒▒▒▒▒    ║
        ║ ▒[X]▒Stack▒checking▒▒▒▒▒    ▒[▒]▒Complete▒boolean▒eval▒▒▒▒    ║
        ║ ▒[X]▒I/O▒checking▒▒▒▒▒▒▒    ▒[X]▒Extended▒syntax▒▒▒▒▒▒▒▒▒▒    ║
        ║ ▒[ ]▒Overflow▒checking▒▒    ▒[▒]▒Typed▒@▒operator▒▒▒▒▒▒▒▒▒    ║
        ║ Debugging                   ▒[▒]▒Open▒parameters▒▒▒▒▒▒▒▒▒▒    ║
        ║ ▒[X]▒Debug▒Information▒▒    Numeric processing                ║
        ║ ▒[X]▒Local▒symbols▒▒▒▒▒▒    ▒[▒]▒8087/80287▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ║
        ║ ▒[X]▒Symbol▒information▒    ▒[X]▒Emulation▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ║
        ║                                                               ║
        ║ Conditional defines                                           ║
        ║ ██████████████████████████████████████████████████████████v█  ║
        ║                                                               ║
        ║                       █████OK████  ███Cancel███  ███Help████  ║
        ║                        ▒▒▒▒▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒▒▒▒▒ ║
        ║                                                               ║
        ╚═══════════════════════════════════════════════════════════════╝

             Рис. 4.3 Диалоговое окно Compiler Options.

             Compiler settings for - установки компилятора для; Real mode
        target -  целевая  платформа реального режима;  Code generation -
        генерация кода;  Force far calls -  принудительное  использование
        вызовов дальнего  типа;  286 instructions - инструкции процессора
        286; Overlays allowed - допустимость оверлеев;  Smart callbacks -
        эффективные вызовы; Word align data - выравнивание данных на гра-
        ницу слова;  Windows stack frames кадры  стека  Windows;  Runtime
        errors - ошибки этапа выполнения; Syntax Options - синтаксические
        ошибки; Range checking - проверка диапазона; Strict var-strings -
        строгая проверка строковых переменных;  Stack checking - проверка
        стека;  Complete boolean eval - полное вычисление булевских выра-
        жений;  I/O  checking - проверка ввода-вывода;  Extended syntax -
        расширенный синтаксис;  Overflow checking - проверка переполнения

        стека;  Typed  @ operator - типизованная операция @;  Debugging -
        отладка;  Open parameters - открытые параметры; Debug Information
        - отладочная информация; Numeric processing - числовая обработка;
        Local symbols - локальные идентификаторы; 8087/80287 - процессоры
        8087/80287;  Symbol information - локальная информация; Emulation
        - эмуляция; Conditional defines - условные определения.

                               Задание параметров
                        компилятора для целевой платформы

             Выбираемые вами параметры компилятора в сильной степени  за-
        висят от того,  какую целевую платформу вы используете. Например,
        если вы создаете приложение DOS реального режима,  то можете раз-
        решить использование  оверлеев,  что  не  требуется  для программ
        Windows или защищенного режима DOS.

             Для указанной целевой платформы вы можете  установить  стан-
        дартные параметры компилятора:

                   Примечание: Меню    Compiler    Options    компилятора
              TURBO.EXE не имеет параметра Compiler Setting For.

             1. Для  вывода  прокручиваемого  списка  щелкните "мышью" на
                стрелке v или нажмите клавишу  стрелки  вниз  при  выборе
                блока списка Compiler Setting For.

             2. Проверьте выбранную целевую платформу.

             IDE автоматически устанавливает обычно используемые парамет-
        ры. В любой момент вы можете переопределить эти выбранные  в  IDE
        параметры.

             Если параметр  компилятора  несовместим  с выбранной целевой
        платформой,  то он становится тусклым,  и вы не можете его  выби-
        рать.

                              Установка параметров
                      компилятора для всех целевых платформ

             Если вы хотите чтобы конкретный параметр компилятора был ус-
        тановлен  независимо от используемой целевой платформы,  сделайте
        следующее:

             1. В качестве значения параметра Compiler Settings For выбе-
                рите All Targets.

             2. Установите или отмените параметр компилятора,  который вы
                хотите установить.

             Например, если вы хотите использовать инструкции  процессора
        286 для всех платформ,  выберите All Targets (Все платформы), за-
        тем установите параметр 286 instructions.

             Когда вы выбираете All Targets, то можете увидеть, что в не-
        которых кнопках  с независимой фиксацией выводится вопросительный
        знак (?). Это указывает, то установка параметра для всех платформ
        не является одинаковой.  Вы можете изменить этот параметр, сделав
        его одинаковым для всех платформ, или оставить как есть.

                         Задание параметров компоновщика

             Характер компоновки вашего кода зависит от установок в  диа-
        логовом окне Linker Options (Параметры компоновщика). Для его вы-
        вода выберите команду Options│Linker.  Если нужна более детальная
        информация, выберите Help.

                      Включение в код директив компилятора

             Существует еще  один способ задания режима компиляции исход-
        ного кода. Вместо использования для установки параметров диалого-
        вых окон  вы  можете  включить  в свой код директивы компилятора.
        Например, вы можете включить в свою программу проверку диапазона,
        установив в   диалоговом  окне  Options│Compiler  параметр  Range
        Checking, или поместить в исходный код  директиву  {$R+}.  Полное
        описание директив  компилятора и их использования вы можете найти
        в Главе  2  ("Директивы  компилятора")  "Справочного  руководства
        программиста".

             Включаемые в  исходный код директивы компилятора имеют боль-
        ший приоритет,  чем параметры компилятора, устанавливаемые в IDE.
        Например, если  в  IDE вы установите параметр Range Checking,  но
        ваша программа включает в себя директиву {R-},  то программа ком-
        пилируется с выключенной проверкой диапазона.

                                Оптимизация кода

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

             Приведем параметры, влияющие на оптимизацию кода. Каждая ди-
        ректива компилятора сопровождается указанием соответствующего па-
        раметра компилятора.  Рассмотрим  использование  для  завершающей
        компиляции следующих параметров:

             * Выравнивание данных  на  границу  слова  Word  Align  Data
               ({$A+})  выравнивает переменные и типизированные константы
               на границу слова, что дает в системах с процессорами 80x86
               более быстрый доступ к памяти.

             * Выключение полного вычисления булевских выражений Complete
               Boolean Evaluation ({$B-}) дает код, который в зависимости
               от установки  ваших булевских выражений более быстро рабо-
               тает.


             * При выключенной эмуляции Emulation ({$E-})  компилятор  не
               будет выполнять  компоновку с библиотекой исполняющей сис-
               темы, эмулирующей сопроцессор 80x87.  Она должна использо-
               вать сопроцессор  80х87  (в  случае его наличия) или стан-
               дартный 6-байтовый тип  Real.  При  компиляции  приложений
               Windows эмуляция  не  используется;  при наличии директивы
               эмуляции компилятор ее игнорирует.

             * Когда  задана  генерация  кода   процессора   80286   Code
               Generation ({$G+}), компилятор для улучшения генерации ко-
               да использует дополнительные инструкции процессора  80286.
               Скомпилированные таким образом программы не будут работать
               на процессорах 8088 и 8086.

             * При выключенной проверке ввода-вывода I/O Checking ({$I-})
               компилятор не  проверяет ошибки ввода-вывода.  Вызвав пре-
               допределенную функцию IOResult,  вы можете  самостоятельно
               проверить ошибки ввода-вывода.

             * Когда  выключена  числовая  обработка  Numeric  Processing
               ({$N-}), компилятор генерирует  код,  способный  выполнять
               все операции  с  плавающей  точкой  с  помощью встроенного
               6-байтового типа Real.  Если параметр  Numeric  Processing
               включен, ({$N+}),  компилятор использует сопроцессор 80х87
               или эмулирует сопроцессор с помощью  программного  обеспе-
               чения, в зависимости от наличия сопроцессора 80х87.  Полу-
               ченный в результате код может использовать четыре дополни-
               тельных вещественных  типа  (Single,  Double,  Extended  и
               Comp).

             * Когда выключена проверка диапазона Stack Checking ({$R-}),
               компилятор не  выполняет проверку на ошибки индексирования
               массива и присваивание значения вне диапазона.

             * При выключенной проверке стека Stack Checking ({$S-}) ком-
               пилятор не обеспечивает достаточного пространства в  стеке
               для каждого вызова процедуры или функции.

             * Когда включена нестрогая проверка строк-переменных Relaxed
               String Var Checking ($V-}),  компилятор не проверяет пара-
               метры-переменные строкового типа.  Это позволяет вам пере-
               давать строки фактических параметров,  имеющие длину,  от-
               личную от длины,  определенной  для  формального  парамет-
               ра-переменной.

             * При  разрешении  расширенного  синтаксиса  Extended Syntax
               ({$X+}) вы можете использовать вызовы функций как операто-
               ры, поскольку  результат функциональных вызовов может отб-
               расываться.


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

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz