субота, 5 березня 2016 р.


ЕТАПИ ВИКОНАННЯ ПРОГРАМИ

Вихідна програма, підготовлена на мові С++ у вигляді текстового файла з розширенням *.срр (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, запустивши, який ми одержуємо на екрані бажану фразу. 

Немає коментарів:

Дописати коментар