C++/Вступ у C++/Компілятор

Матеріал з Вікіпідручника

Компілятор[ред.]

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

Компіляція[ред.]

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

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

Час компіляції[ред.]

Час або етап компіляції визначає момент часу і набір операцій які виконуються компілятором (тобто, операції на етапі компіляції) під час побудови (збирання) програми (виконуваного формату або ні). Використання ключового слова "static" в мові C++ найчастіше прямо пов'язане із інформацією, що має відношення до етапу компіляції.

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

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

Час виконання, починається з того моменту як програма починає своє виконання до моменту її завершення.