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

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

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

Видео: Разница между ассемблером и компилятором
Видео: Основы программирования #2 Компилятор и интерпретатор 2024, Май
Anonim

Ассемблер против компилятора

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

Что такое компилятор?

Компилятор - это компьютерная программа, которая читает программу, написанную на одном языке, который называется исходным языком, и переводит ее на другой язык, который называется целевым языком. Чаще всего исходный язык является языком высокого уровня, а целевой язык - языком низкого уровня. Итак, в целом компиляторы можно рассматривать как переводчики, которые переводят с одного языка на другой. Кроме того, компиляторы оптимизируют код. Типичный компилятор состоит из нескольких основных компонентов. Первый компонент - это сканер (также известный как лексический анализатор). Сканер читает программу и преобразует ее в строку токенов. Второй компонент - это парсер. Он преобразует строку токенов в дерево синтаксического анализа (или абстрактное синтаксическое дерево), которое фиксирует синтаксическую структуру программы. Следующим компонентом являются семантические процедуры, интерпретирующие семантику синтаксической структуры. За этим следует оптимизация кода и окончательная генерация кода.

Что такое ассемблер?

Ассемблер - это программное обеспечение или инструмент, который переводит язык ассемблера в машинный код. Итак, ассемблер - это разновидность компилятора, а исходный код написан на языке ассемблера. Ассемблер - это язык, читаемый человеком, но обычно он связан с соответствующим машинным кодом один к одному. Поэтому говорят, что ассемблер выполняет изоморфную трансляцию (отображение один в один). Продвинутые ассемблеры предоставляют дополнительные функции, которые поддерживают процессы разработки и отладки программ. Например, тип ассемблеров, называемый макроассемблерами, предоставляет возможность макроса.

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

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

Рекомендуем: