Google Play badge

компілятори


КОМПІЛЯТОРИ

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

Важливо відзначити, що існує багато різних типів компіляторів. Якщо скомпільована програма може працювати на комп’ютері, операційна система чи ЦП якого відрізняються від тих, які запускає компілятор, компілятор називається крос-компілятором. З іншого боку, початковий компілятор написаний мовою, яку він має намір скомпілювати. Декомпілятор — це програма, яка використовується для перекладу мови низького рівня на мову вищого рівня. Програма, яка використовується для перекладу між мовами високого рівня, називається компілятором від джерела до джерела. Його також можна назвати транспілером. Програма, яка відповідає за переклад форми виразів без зміни мови, відома як мовний рерайтер. Термін компілятор-компілятор відноситься до інструментів, які використовуються для створення синтаксичних аналізаторів, відповідальних за виконання синтаксичного аналізу.

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

Важливо зазначити, що компілятори не є єдиними трансляторами, які використовуються для перетворення вихідних програм. Комп’ютерне програмне забезпечення, яке відповідає за перетворення та подальше виконання вказаних операцій, називається інтерпретатором. Процес перекладу впливає на дизайн комп’ютерних мов, що призводить до переваги перекладу чи компіляції. На практиці реалізація інтерпретатора для компіляторів і компільованих мов може бути реалізована для інтерпретованих мов.

Зауважте, що під час використання компілятора для виконання програми використовується двоетапний процес,

ЛАНЦЮЖОК ІНСТРУМЕНТІВ КОМПІЛЯЦІЇ

Для великих програм компілятор є частиною багатоетапного інструментального ланцюжка,

(препроцесор)- (компілятор)- (асемблер)- (компонувальник)- (завантажувач).

СТРУКТУРА КОМПІЛЯТОРА

Сучасні компілятори складаються з двох основних частин. Кожну з цих частин часто поділяють на підрозділи. Ці дві основні частини - це передня частина та задня частина.

Інтерфейс відповідає за аналіз вихідної програми, створює проміжне представлення програми та визначає її складові частини. Як правило, інтерфейс не залежить від цільової мови.

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

Download Primer to continue