Програмісти використовують компілятори, щоб перетворити вихідний код на машинний.
Комп’ютери зчитують команди з машинної мови, записані в двійковому форматі, тобто довгі рядки нулів і одиниць. Хоча комп’ютери можуть ефективно читати цю мову, більшість програмістів не можуть. Ось чому програмісти працюють зрозумілою їм мовою програмування, яку потім перекладають на машинну мову, зрозумілу комп’ютеру. Хоча багато нових мов використовують інтерпретатори, які перекладають з однієї на іншу під час роботи програми, старіші мови У мовах програмування використовувалися компілятори, які зробили цей переклад повністю до того, як комп’ютер запустив програма.
Перевага: Автономна та ефективна
Однією з основних переваг компілюваних програм є те, що вони є автономними блоками, які готові до виконання. Оскільки вони вже скомпільовані у двійкові файли машинної мови, немає другої програми чи пакета, які користувач повинен постійно оновлювати. Якщо програма скомпільована для Windows на архітектурі x86, кінцевому користувачеві потрібна лише операційна система Windows, що працює на архітектурі x86. Крім того, попередньо скомпільований пакет може працювати швидше, ніж інтерпретатор, який компілює вихідний код у режимі реального часу.
Відео дня
Недолік: Специфічне обладнання
Оскільки компілятор перекладає вихідний код на певну машинну мову, програми повинні бути такими спеціально зібрано для OS X, Windows або Linux, а також спеціально для 32-розрядних або 64-розрядних архітектури. Для програміста або компанії, що займається програмним забезпеченням, яка намагається розповсюдити продукт для якомога ширшої аудиторії, це означає підтримувати кілька версій вихідного коду для однієї програми. Це призводить до того, що витрачається більше часу на обслуговування вихідного коду та додаткові проблеми після випуску оновлень.
Перевага: Оптимізація обладнання
Хоча блокування в певному апаратному пакеті має свої недоліки, компіляція програми також може підвищити її продуктивність. Користувачі можуть надсилати компіляторам певні параметри щодо деталей апаратного забезпечення, на якому буде працювати програма. Це дозволяє компілятору створювати код машинної мови, який найбільш ефективно використовує вказане обладнання, на відміну від більш загального коду. Це також дозволяє досвідченим користувачам оптимізувати роботу програми на своїх комп’ютерах.
Недолік: час компіляції
Одним із недоліків компілятора є те, що він повинен фактично компілювати вихідний код. У той час як компіляція невеликих програм, які кодують багато початківців програмістів, займає тривіальну кількість часу, для компіляції більших програм може знадобитися значний час. Коли програмістам нічого не залишається робити, крім як чекати, поки компілятор закінчить, цей час може збільшитися, особливо під час етап розробки, коли код повинен бути скомпільований, щоб перевірити функціональність та усунути неполадки глюки.