Етапи компіляції і компоновки програм на мові c

Ви коли-небудь замислювалися над тим, як саме створюються виконувані файли з розширенням .exe з вихідних кодів? Яка роль компілятора і компоновщика? У цій дуже короткій замітці, я опишу цей процес дуже просто, не вдаючись у подробиці його реалізації.

Об'єднана єдиним алгоритмом сукупність описів і операторів утворює програму на алгоритмічній мові. Для того щоб виконати програму, потрібно перевести її на мову, зрозумілу процесору - в машинні коди. Цей процес складається з декількох етапів. Малюнок нижче ілюструє ці етапи для мови С ++.

Етапи компіляції і компоновки програм на мові c

Етапи створення програми, що виконується на C ++

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

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

Таким чином створюються виконувані програми на C ++. Звичайно це дуже загальний опис цього складного процесу, але чітко передає зміст усіх етапів роботи компілятора і компонувальника.

За матеріалами книги «Програмування на мові високого рівня C \ C ++», Павловська Т.О.

Навігація по публікаціям

Що таке «лексема». І що значить «граматики мови розпізнає вирази й оператори, побудовані з цих лексем»
»При цьому компілятор виявляє синтаксичні помилки і в разі їх відсутності будує об'єктний модуль.» - навіщо він його будує? чому без нього не можна?

Не зрозуміло, коротше.

Схожі статті