border=0

Технологія »Компіляція

Визначення компіляції


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


Компіляція - це процес, за допомогою якого програма, написана на мові високого рівня, переводиться в машинний код, який використовується конкретною архітектурою комп'ютера, для безпосереднього виконання.

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


Так, наприклад, ми можемо перейти до певної програми для 32-бітової архітектури x86, 64-бітної версії x86, PowerPC або ARM також відрізнятиметься між 32 і 64 бітами, залежно від типу пристрою, на якому ми хочемо його запустити.


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

Візьміть для прикладу 64-бітну платформу x86. Ми можемо захотіти компілювати для Windows , GNU / Linux або macOS, або для кожного з них, що передбачає три окремі процеси компіляції.

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

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

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

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

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

Чи існує альтернативний варіант процесу компіляції? Так, і вони є інтерпретованими мовами.

Інтерпретованими мовами є ті, які перекладені під час виконання, а не компілюються.

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

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

Іншим альтернативним підходом , на півдорозі між скомпільованими і інтерпретованими мовами, є ті, які вимагають, щоб віртуальна машина працювала, наприклад, Java.

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

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

Фото: Fotolia - Олександр Покусай / Онот

Автор: Guillem Alsina González | + QUOTE
Теми компіляції

Соціальні мережі