ЕТАПИ ВИКОНАННЯ ПРОГРАМИ
Вихідна програма, підготовлена
на мові С++ у вигляді текстового файла з розширенням *.срр (welcome.cpp),
проходить 3 етапи обробки:
1) препроцесорне
перетворення тексту програми;
2) компіляція;
3) компоновка
(редагування зв'язків
чи складання).
Після цих 3 етапів формується машинний
код програми, що виконується.
Задачею препроцесора є перетворення
(доповнення) тексту програми до початку її компіляції. Правила препроцесорної обробки
визначаються програмістом за допомогою директив препроцесора. Директива починається
з ”#” ('дієз', 'шарп'). Наприклад,
1) #define - визначає правила заміни
в тексті:
#define ZERO 0.0
Це означає, що кожне використання
у програмі імені ZERO буде замінюватися на 0.0.
2) #include< ім'я заголовного файла > - передбачена для залучення до тексту
програми тексту файлу з каталогу “Заголовних файлів” INCLUDE, які постачаються
разом зі стандартними бібліотеками. Кожна бібліотечна функція чи об'єкт С++
має відповідний опис в одному з заголовних файлів (наприклад, iostream.h, stdio.h,
conio.h, math.h). Список заголовних файлів визначається стандартом мови. Використання
директиви include не під¢єднує відповідну стандартну бібліотеку, а лише дозволяє долучити
до тексту програми описи із зазначеного заголовного файлу. В нашому випадку
препроцесор обробляє директиву #include <iostream.h> і під’єднує до
вихідного тексту програми засоби для обміну з дисплеєм. Далі файл передається на
компіляцію, у ньому виявляються синтаксичні помилки, які потрібно усунути програмістові.
Після безпомилкової компіляції текст програми перекладається компілятором на машинну
мову, далі отримуємо об’єктний файл з розширенням *.obj. Підключення об'єктних кодів файлів з визначеннями необхідних стандартних функцій і об'єктів
з бібліотеки відбувається на етапі компоновки, тобто після компіляції. У об'єктному
коді створюваної програми ніби замуровуються дірки за допомогою кодів стандартних
функцій. Хоча в заголовних файлах містяться всі описи стандартних функцій, до коду
програми залучаються лише функції й об'єкти, які використовуються
в програмі.
Після компоновки утворюється модуль програми з розширенням
*.ехе.
Отже, в нашому випадку, виконавши
директиви, препроцесор сформує повний текст програми, компілятор створить об’єктний
файл welcome.obj, за замовчуванням обравши для нього зазначене ім’я, а компоновщик
(редактор зв’язків Linker) доповить програму бібліотечними функціями, наприклад,
для роботи з об’єктом cout і побудує модуль welcome.exe, запустивши,
який ми одержуємо на екрані бажану фразу.
Немає коментарів:
Дописати коментар