Різниця між укладачем та перекладачем

Компілятор проти Перекладач

Коли ви пишете програми на мові високого рівня, комп'ютер не зможе це зрозуміти. Щоб він був корисним, вам потрібно перетворити його на те, що розуміє комп'ютер. Тут надходять компілятори та інтерпретатори, оскільки вони обидва виконують одну і ту ж функцію. Основна відмінність компілятора від інтерпретатора полягає в тому, коли вони виконують код. З інтерпретатором код виконується відразу, коли інтерпретація передає інтерпретований код на комп'ютер. Для порівняння, компілятор не виконує код. Натомість він записує готовий код на диск. Код, записаний на диск, може бути виконаний будь-коли.

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

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

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

Вибір між компілятором та інтерпретатором повинен залежати від того, чи хочете ви переносимість чи продуктивність.

Підсумок:

  1. Інтерпретатор безпосередньо виконує код, а компілятор - ні
  2. Перекладач повинен бути доступний у цільовій машині, тоді як компілятор - ні
  3. Інтерпретована програма працюватиме на декількох платформах, тоді як складена програма не буде
  4. Інтерпретована програма працюватиме повільніше, ніж складена програма