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

Assembler vs Interpreter

Загалом компілятор - це комп’ютерна програма, яка читає програму, написану однією мовою, яку називають мовою-джерелом, і перекладає її на іншу мову, яку називають цільовою мовою. Традиційно мова-джерело є мовою високого рівня, такою як C ++, а мова цільового - мова низького рівня, така як мова складання. Однак є компілятори, які можуть перетворити вихідну програму, написану мовою складання, та перетворити її в машинний код або об'єктний код. Асемблери - це такий інструмент. З іншого боку, Інтерпретатори - це інструменти, які виконують інструкції, написані деякою мовою програмування. Інтерпретатор може безпосередньо виконувати вихідний код високого рівня або переводити їх у проміжний код, а потім інтерпретувати його або виконувати попередньо складений код.

Що таке Асемблер?

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

Що таке перекладач?

Перекладач - це комп’ютерна програма або інструмент, який виконує інструкції з програмування. Інтерпретатор може або виконати вихідний код безпосередньо, або перетворити джерело в проміжний код і виконати його безпосередньо або виконати попередньо складений код, створений компілятором (деякі системи інтерпретатора включають компілятор для цього завдання). Такі мови, як Perl, Python, MATLAB та Ruby - приклади мов програмування, які використовують проміжний код. UCSD Pascal інтерпретує попередньо складений код. Такі мови, як Java, BASIC та Samlltalk спочатку компілюють джерело до проміжного коду, який називається байт-кодом, а потім інтерпретують його.

Яка різниця між ассемблером та перекладачем?

Асемблером можна вважати спеціальний тип компілятора, який лише переводить мову складання в машинний код. Перекладачі - це інструменти, які виконують інструкції, написані якоюсь мовою. Системи перекладачів можуть включати компілятор для попереднього компіляції коду перед інтерпретацією, але інтерпретатора не можна назвати спеціальним типом компілятора. Ассемблери виробляють об'єктний код, який, можливо, доведеться пов’язати за допомогою лінкерних програм, щоб запустити на машині, але більшість інтерпретаторів можуть завершити виконання програми самостійно. Асемблер, як правило, робить переклад один на один, але це не відповідає дійсності більшості перекладачів. Оскільки мова складання має суцільне відображення з машинним кодом, асемблер може використовуватися для створення коду, який працює дуже ефективно для випадків, коли продуктивність дуже важлива (наприклад, графічні двигуни, вбудовані системи з обмеженими апаратними ресурсами порівняно з персональним комп'ютером як мікрохвильові печі, пральні машини тощо). З іншого боку, перекладачі використовуються, коли потрібна висока портативність. Наприклад, той самий байт-код Java може бути запущений на різних платформах за допомогою відповідного інтерпретатора (JVM).