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

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

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

Видео: Разлика между асемблер и компилатор
Видео: Язык ассемблера для Intel x86 - Урок #3 - Регистры, команда mov, способы адресации, арифметика 2024, Декември
Anonim

Асемблер срещу Компилатор

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

Какво е компилатор?

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

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

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

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

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

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