Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Директиви компілятора, які не мають параметрів

 

Перемикаючі директиви розділяються на глобальні та локальні. Глобальні директиви впливають на компіляцію всього модуля, коли локальні директиви впливають на частину тексту, який знаходиться до слідуючеї одноіменної директиви.

Ці директиви вмикають та вимикають окремі функції компілятора за допомогою знаків "+" та "-", які йдуть за іменем директиви.

 

$A - вирівнювання данних на початок слова.

Синтаксис: {$A+} або {$A-}

(по замовчанню діє директива {$A+})

Тип: глобальна

 

В режимі {$A+} всі змінні та типізовані константи, довжина яких більше ніж 1 байт, вирівнюються по границям машинного слова з парною адресою. Директива {$A+} не вказує впливу на змінні, довжина яких не більше ніж 1 кбайт, а також на поля записів та елементи масивів. Вирівнювання по словам приводить до збільшення швидкості виконання програми за рахунок того, що доступ до даних довжиною в слово за парними адресами відбувається в один цикл, а за непарними - в два цикли.

В режимі {$A-} вирівнювання не відбувається

 

$B - виконання всіх операцій, які пов'язані з обчислюванням зна-

чення логічного виразу навідь тоді, коли результат відомий.

Синтаксис: {$B+} або {$B-}

(по замовчанню діє директива {$B-})

Тип: локальна

 

В режимі {$B+} компілятор генерує код для повного обчислення логічного виразу. Це означає, що кожен операнд логічного виразу, який побудований з операцій OR та AND обов'язково буде обчислюватись навідь тоді, коли результат виразу вцілому вже відомий.

В режимі {$B-} компілятор генерує код для скороченого обчислення логічного виразу. Це означає, що кобчислення закічується, як тільки результат виразу вцілому стане вже відомий.

 

$D - залучення до процесу компіляції режиму генерації відлагоджувальної інформації.

Синтаксис: {$D+} або {$D-}

(по замовчанню діє директива {$D-})

Тип: глобальна

 

Дана директива встанавлює або відміняє режим генерації відлагоджувальної інформації. Ця інформація складається з таблиць номерів рядків для всіх процедур, котрі встановлюють відповідність між адресами об'єктного коду та номерами рядків вихідного тексту.

При {$D+} TP дає можливість проводити покрокову відладку даного модуля та встанавлювати в ньому точки зупинки. Крім того, при появі помилок періода виконання в пограмі чи модулі, які були скомпільовані в режимі {$D+} TP може автоматично вказати той оператор, котрий визвав помилку.

 

$E - використання всіх можливостей сопроцесора (якщо він є) або емуляція його роботи програмно.

Синтаксис: {$E+} або {$E-}

(по замовчанню діє директива {$E+})

Тип: глобальна

 

Дана директива встановлює та відмінює режим компановки з бібліотекою підтримки виконання, яка емулює числовий сопроцесор 8087, якщо він відсутній в системі.

При компіляції програми в режимі {$N+,$E+} TP здійснює її компановку з бібліотекою, виконуючи повну емуляцію сопроцесора 8087. Результуючий файл типу EXE використовуватись для EOM, незалежно є ні сопроцесор в даній машині.

При компіляції програми в режимі {$N+,$E-} TP здійснює її компановку зі значно меншою бібліотекою операцій з плаваючою крапкою, котрі можна виристовувати при наявності сопроцесор в даній машині.

 

$F - встановлення для всіх процедур та функцій дальної моделі виклику.

Синтаксис: {$F+} або {$F-}

(по замовчанню діє директива {$F-})

Тип: локальна

 

Дана директива визначає яка модель визова повинна використовуватись для розміщених слідом процедур та функцій. Для процедур та функцій, які скомпільовані в режимі {$F+} використовується модень дальнього (FAR) визову. В режимі {$F-} компілятор сам вибирає потрібну модель: дальній визов використовується для процедур та функцій, які описані розділі інтерфейса модуля; для всіх останніх процедур та функцій використовується ближній (NEAR) визов.

 

$G - генерація коду в розрахункі на процесор типу Intel 80286.

Синтаксис: {$G+} або {$G-}

(по замовчанню діє директива {$G-})

Тип: локальна

 

При режимі {$G-} зкомпільована програма може виконуваться на любому процесорі сімейства 80x86.

При режимі {$G+} компілятор включає по необхідності інструкції процесора 80286 та ці програми не можуть виконуваться на процесорах 8086, 8088.

 

$I - підключення засобів, які контролюють вірність виконання операцій вводу-виводу.

Синтаксис: {$I+} або {$I-}

(по замовчанню діє директива {$I+})

Тип: локальна

 

Дана директива встановлює та відміняє режим автоматичної генерації коду, котрий виконує перевірку результату звернення до процедур вводу/виводу.

При режимі {$I+} та при ненулевому виводі фукції IOResult виконання програми завершується та видається відповідне повідомлення про помилку виконання.

При режимі {$I-} контроль вводу/виводу здійснюється програмувачем за допомогою фукції IOResult.

 

$L - дозвіл доступу до локальних змінних та типізованних константам в режимі відладки.

Синтаксис: {$L+} або {$L-}

(по замовчанню діє директива {$L+})

Тип: глобальна

 

Дана директива встанавлює та відміняє режим формування інформації про локальні позначення. Ця інформація складається з імен та типів всіх локальних змінних та констант в деякому модулі.

При {$L+} вбудований відладчик TP дає можливість перевіряти та змінювати локальні змінні даного модуля.

 

$N - opієнтація компілятора на роботу з числовим сопроцесором або програмами його емуляції.

Синтаксис: {$N+} або {$N-}

(по замовчанню діє директива {$N-})

Тип: глобальна

 

Дана директива виконує перемикання між двома різними режимами генерації коду для виконання операцій з плаваючою крапкою.

При {$N+} генерується код для обчислення виразів дійсного типу з використанням сопроцессора 8087.

При {$N-} генерується код для обчислення виразів дійсного типу програмними засобами, шляхом визову програм з бібліотеки підтримки.

 

$O - керування генерацією оверлейного кода модулів.

Синтаксис: {$O+} або {$O-}

(по замовчанню діє директива {$O-})

Тип: глобальна

 

Дана директива дозволяє або забороняє генерацію оверлейного коду. TP дозволяє робити модуль оверлейним тільки в тому випадку, якщо він був зкомпільований в режимі {$O+}. В цьому режимі компілятор приймає всі міри безпеки при передачі параметрів, які є множинними та рядковими константами, з однієї оверлейної процедури або функції в другу.

Використання директиви {$O+} не вимагає робити цей модуль оверлейним. Вона лише вказує компілятору, що необхідно забезпечити умови для того, щоб модуль міг стати оверлейним, якщо це потрібно.

 

$P - дозвіл використовувать в підпрограмах відкритих параметрів типу String

Синтаксис: {$P+} або {$P-}

(по замовчанню діє директива {$P-})

Тип: локальна

$Q - контроль ситуації переповнення, яка виникає при роботі з

даними. Якщо директива включена, то переповнення приводить

до завершення програми та видачі діагностичного повідом-

лення.

Синтаксис: {$Q+} або {$Q-}

(по замовчанню діє директива {$Q-})

Тип: локальна

 

$R - ініціалізація режима генерації додаткового коду, який служить для перевірки виходу значень змінних та індексів за межі відповідних для них границь.

Синтаксис: {$R+} або {$R-}

(по замовчанню діє директива {$R+})

Тип: локальна

 

Дана директива встанавлює або відміняє режим генерації кода контроля входження в диапазон.

В режимі {$R+} всі індекси масивів та рядків контролюються на вихід за визначені границі, а всі присвоєння значень змінних скалярного та обмеженого типів на входження в диапазон. При виході за межі виконання програми завершується та видається відповідне повідомлення про помилку періода виконання. Цей режим збільшує розмір програми та заповільнює її роботу. Тому його краще використовувати при відладці програми, а коли програма буде повністю відладжена, вимкніть його.

 

$S - перевірка перед викликом наявність достатньої кількості

вільного простору в сегменті стеку для розміщеня в ньому

локальних змінних.

Синтаксис: {$S+} або {$S-}

(по замовчанню діє директива {$S+})

Тип: локальна

 

Дана директива встановлює або відміняє режим генерації коду

контроля переповнення стека.

В режимі {$S+} на початку кожної процедури чи функції компілятор генерує код, котрий перевіряє чи достатньо в стекі місця для розміщення локальних змінних та інших проміжних даних. Якщо місця недостатньо, то даний режим приводить до завершення виконання програми та видачі повідомлення про помилку періода виконання.

 

$T - керування типом результату операції @. Якщо директива включена, то результат є типізованим вказівником (природньо, що тип результату визначається типом аргументу); в противном випадку результат операції @ має тип Pointer незалежно від типу аргументу.

Синтаксис: {$T+} або {$T-}

(по замовчанню діє директива {$T+})

Тип: локальна

 

$V - перевірка довжини рядкового параметра з атрибутом Var довжині аргументу.

Синтаксис: {$V+} або {$V-}

(по замовчанню діє директива {$V+})

Тип: локальна

 

Дана директива управляє вмиканням контролю типів рядків, які передаються в вигладі параметрів-змінних.

В режимі {$V+} виконується строгий контроль типів, який потребує, щоб формальні та фактичні параметри відносились до ідентичних рядкових типів.

В режимі {$V-} дозволяється в якості фактичного параметру використовувати змінні любого рядкового типу, навідь якщо описана максимальна довжина рядка не відповідає довжині рядка формального параметру.

 

$X - включення директиви дає можливість визвати функції як процедури та використовувати ASCIIZ-рядки.

Синтаксис: {$X+} або {$X-}

(по замовчанню діє директива {$X+})

Тип: глобальна

 

В режимі {$X+} можна звертатись до підпрограми-функції як до підпрограмі-процелдурі. Цей режим не діє на функції модуля SYSTEM. Крім того в цьому режимі можна розглядувати змінні типу PChar як ASCIIZ-рядки.

 

$Y - дозвіл на використання вбудованим відлагоджувачем інформації про глобальні символи, яка отримується в результаті компіляції.

Синтаксис: {$Y+} або {$Y-}

(по замовчанню діє директива {$Y+})

Тип: локальна

 

Директиви компілятора, які мають параметри

 

$C<список атрибутів>

- задання атрибутів розміщення сегмента кода в оперативній пам'яті.

 

$I<ім'я файлу>

- включення в програму фрагменту вихідного тексту, який створений раніше та знаходиться в файлі з заданим іменем.

 

$L<ім'я Obj-файлу>

- включення в програму об'єктного коду зовнішньої підпрограми,

яка знаходиться в файлі з заданим іменем.

 

$M<число1,число2,число3>

-встановлення розміра сегмента стека, мінімального та максимального об'ємів доступної динамічної пам'яті.




Переглядів: 402

<== попередня сторінка | наступна сторінка ==>
ДОДАТОК 1 | ЗАСТОСУВАННЯ ЕЛЕКТРОННИХ ТАБЛИЦЬ ДЛЯ РОЗВ’ЯЗАННЯ ЕКОНОМІЧНИХ ЗАДАЧ

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.009 сек.