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

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

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

Видео: Разница между ассемблером и интерпретатором
Видео: Компиляция и интерпретация за 10 минут 2024, Июль
Anonim

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

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

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

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

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

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

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

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

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