Разлика между асемблер и преводач

Разлика между асемблер и преводач
Разлика между асемблер и преводач

Видео: Разлика между асемблер и преводач

Видео: Разлика между асемблер и преводач
Видео: Ассемблер. Урок 1. Основы. Арифметические операции. 2024, Може
Anonim

Асемблер срещу преводач

По принцип компилаторът е компютърна програма, която чете програма, написана на един език, който се нарича изходен език, и го превежда на друг език, който се нарича целевият език. Традиционно изходният език е език на високо ниво като C ++, а целевият език е език на ниско ниво като език на асемблерите. Съществуват обаче компилатори, които могат да конвертират изходна програма, написана на асемблерен език, и да я преобразуват в машинен код или обектен код. Асемблерите са такива инструменти. От друга страна, интерпретаторите са инструменти, които изпълняват инструкции, написани на някакъв език за програмиране. Интерпретаторът може или директно да изпълнява изходен код на високо ниво, или да ги превежда в междинен код и след това да го интерпретира или да изпълнява предварително компилиран код.

Какво е Асемблер?

Assembler е софтуер или инструмент, който превежда асемблерния език в машинен код. И така, асемблерът е вид компилатор и изходният код е написан на асемблерен език. Сглобяването е разбираем за човека език, но обикновено има връзка едно към едно със съответния машинен код. Следователно се казва, че асемблерът извършва изоморфен (едно към едно картографиране) превод. Разширените асемблери предоставят допълнителни функции, които поддържат процесите на разработване на програми и отстраняване на грешки. Например видът на асемблерите, наречени макро асемблери, осигурява макросъоръжение.

Какво е преводач?

Преводачът е компютърна програма или инструмент, който изпълнява инструкции за програмиране. Интерпретаторът може или да изпълни директно изходния код, или да преобразува източника в междинен код и да го изпълни директно, или да изпълни предварително компилиран код, създаден от компилатор (някои системи за интерпретатори включват компилатор за тази задача). Езици като Perl, Python, MATLAB и Ruby са примери за езици за програмиране, които използват междинен код. UCSD Pascal интерпретира предварително компилиран код. Езици като Java, BASIC и Samlltalk първо компилират източника в междинен код, наречен байт код, и след това го интерпретират.

Каква е разликата между асемблер и преводач?

Асемблерът може да се счита за специален тип компилатор, който само превежда езика на събранието в машинен код. Преводачите са инструменти, които изпълняват инструкции, написани на някакъв език. Системите за интерпретатор могат да включват компилатор за предварително компилиране на код преди интерпретация, но интерпретатор не може да бъде наречен специален тип компилатор. Асемблерите създават обектен код, който може да се наложи да бъде свързан с помощта на програми за свързване, за да се изпълнява на машина, но повечето интерпретатори могат да завършат изпълнението на програма сами. Асемблерът обикновено прави едно към едно превод, но това не е вярно за повечето преводачи. Тъй като асемблерният език има съпоставяне едно към едно с машинен код, асемблер може да се използва за създаване на код, който работи много ефективно за случаи, в които производителността е много важна (например за графични машини,вградени системи с ограничени хардуерни ресурси в сравнение с персонален компютър като микровълни, перални машини и др.). От друга страна, преводачите се използват, когато имате нужда от висока преносимост. Например един и същ байт код на Java може да се изпълнява на различни платформи, като се използва подходящият интерпретатор (JVM).

Препоръчано: