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

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

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

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

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

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

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

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

Что такое переводчик?

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

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

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

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