Використання модулів

При використанні модулів передбачається, що модулі, які використовуються (через Uses) в програмі, повинні бути вже оттранслировать і зберігатися, як машинний код. а не як вихідний код на Паскалі. Більш того, певні стандартні модулі (System, Dos, Crt, Graph, Overlay, Printer, Wincrt, Strings) зберігаються в т.зв. стандартної Біб-ке (TURBO.TPL, TPW.TPL або TPP.TPL) і автоматично завантажуються в пам'ять разом з біб-кою при запуску Borland Pascal.

програмою TPUMOVER.EXE можна подивитися склад стандартних модулів в бібліотеці, прибрати модуль з бібліотеки (завдяки чому зменшується його розмір і кількість пам'яті, необхідної для його завантаження), додати модуль як стандартний в бібліотеку

В результаті використання одного або декількох модулів дуже незначно збільшує час компіляції (збірки) програми (зазвичай менш ніж на секунду).

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

Коли в інтерфейсну частину модулявносятся зміни. інші модулі, що використовують цей модуль, повинні бути заново скомпільовані. При використанні команд Make або Build компілятор робить це автоматично. Однак якщо зміни торкнулися тільки секції реалізацііілі секції ініціалізації. то інші модулі, в яких використовується цей модуль, перекомпіліровать не потрібно.

Borland Pascal надає користувачеві ряд стандартних модулів, таких як System, Crt, DOS, Graph, WinCrt і ін. Перші три з перерахованих стандартних моделей зазвичай записані в одну з трьох бібліотек виконуючої системи (в залежності від цільової платформи).

Бібліотеки виконуючою системи для цільової платформи

DOS реального режиму

DOS захищеного режиму

Модуль System завжди підключається автоматично. У цьому модулі зосереджені всі стандартні функції і для підтримки таких засобів, як файловий ввід-висновок, обробка рядків, операції з плаваючою комою, динамічний розподіл пам'яті і інших цей модуль реалізує весь нижній рівень.

Інші модулі автоматично не підключаються. ви повинні обов'язково включити їх в оператор uses. наприклад:

Real Compile \ Target Protected mode Windows

Щоб знайти файл, який містить скомпільований модуль. компілятор усікає вказане в операторі uses ім'я модуля до перших восьми символів і додає розширення файлу. Якщо цільової платформою є DOS, розширенням буде * .TPU. Якщо цільова платформа - Windows, то розширенням файлу буде * .TPW. Якщо цільової платформою є захищений режим DOS, то розширенням файлу буде * .TPP. Хоча імена файлів усікаються, в операторі uses повинен вказуватися повний ідентифікатор модуля. Наприклад, якщо в програмі використовується пропозицію:

то компілятор буде перед трансляцією програми намагатися знайти на диску файл з ім'ям unit_a.tpu. Якщо є необхідність зберігати модуль у файлі з іншим ім'ям. наприклад, unit_B, то слід використовувати директиву компілятора $ U для перевизначення імені TPU-файлу. Ця директива задає "справжнє" ім'я TPU-файлу і повинна розміщуватися безпосередньо перед ім'ям модуля в пропозиції USES. Так в даному випадку:

компілятор буде для підключення модуля unit_A намагатися знайти файл:

При пошуку файлу з модулем. якщо задана опція компілятора Compile. то передбачається, що всі використовувані модулі вже відкомпільовані і компілятор перевіряє наявність (відкомпільованого модуля) за наступною схемою:

1) компілятор переглядає бібліотеку виконуючої системи (зазвичай turbo.tpl);

2) якщо модуль не знайдено в бібліотеці виконуючою системи, то пошук продовжується в поточному каталозі;

3) якщо модуль не знайдено в поточному каталозі, то пошук продовжується в каталогах, заданих за допомогою установок в середовищі Options | Directories | Unit Directories

Якщо нічого не знайдемо - то помилка.

Якщо задані опції компілятора Make або Build. то передбачається, що якісь частини модуля були змінені. і описані вище 3 кроки проводяться в пошуках не файл з розширенням TPU, а в пошуках вихідного тексту модуля. який д.б. перекомпіліровать (тому, що можливо змінений) перед трансляцією самої програми:

- якщо обраний Make (умовна компіляція), то буде перевірятися наявність всіх необхідних tpu-файлів і якщо якийсь файл не знайдений або відповідний исходник був змінений (після останньої компіляції), то файли тільки цих модулів будуть відшукувати і перекомпіліровать;

- якщо обраний Build (безумовна компіляція), то буде виконана примусова перекомпіляція всього, що входить в проект (програма + текст модулів)).

Схожі статті