Ассемблер против переводчика
В общем, компилятор - это компьютерная программа, которая читает программу, написанную на одном языке, который называется исходным языком, и переводит ее на другой язык, который называется целевым языком. Традиционно исходный язык - это язык высокого уровня, такой как C ++, а целевой язык - это язык низкого уровня, такой как язык ассемблера. Однако существуют компиляторы, которые могут преобразовывать исходную программу, написанную на языке ассемблера, и преобразовывать ее в машинный код или объектный код. Ассемблеры являются такими инструментами. С другой стороны, интерпретаторы - это инструменты, которые выполняют инструкции, написанные на каком-то языке программирования. Интерпретатор может либо напрямую выполнить исходный код высокого уровня, либо преобразовать их в промежуточный код, а затем интерпретировать его или выполнить предварительно скомпилированный код.
Что такое ассемблер?
Ассемблер - это программное обеспечение или инструмент, который переводит язык ассемблера в машинный код. Итак, ассемблер - это тип компилятора, а исходный код написан на языке ассемблера. Сборка - это читаемый человеком язык, но обычно он имеет отношение один к одному с соответствующим машинным кодом. Поэтому говорят, что ассемблер выполняет изоморфное (однозначное отображение) преобразование. Продвинутые ассемблеры предоставляют дополнительные функции, которые поддерживают процессы разработки и отладки программ. Например, тип ассемблеров, называемый макро-ассемблерами, обеспечивает макро-средство.
Что такое переводчик?
Интерпретатор - это компьютерная программа или инструмент, который выполняет инструкции по программированию. Интерпретатор может либо выполнить исходный код напрямую, либо преобразовать исходный код в промежуточный код и выполнить его напрямую, либо выполнить предварительно скомпилированный код, созданный компилятором (некоторые системы интерпретатора включают компилятор для этой задачи). Такие языки, как Perl, Python, MATLAB и Ruby, являются примерами языков программирования, которые используют промежуточный код. UCSD Pascal интерпретирует предварительно скомпилированный код. Такие языки, как Java, BASIC и Samlltalk, сначала компилируют исходный код в промежуточный код, называемый байт-кодом, а затем интерпретируют его..
В чем разница между ассемблером и переводчиком?
Ассемблер можно рассматривать как специальный тип компилятора, который переводит только язык ассемблера в машинный код. Интерпретаторы - это инструменты, которые выполняют инструкции, написанные на каком-либо языке. Системы интерпретатора могут включать компилятор для предварительной компиляции кода перед интерпретацией, но интерпретатор нельзя назвать специальным типом компилятора. Ассемблеры создают объектный код, который может быть связан с использованием программ компоновщика для запуска на компьютере, но большинство интерпретаторов могут завершить выполнение программы самостоятельно. Ассемблер обычно выполняет перевод один на один, но это не так для большинства переводчиков. Поскольку язык ассемблера имеет однозначное соответствие с машинным кодом, ассемблер может использоваться для создания кода, который выполняется очень эффективно в тех случаях, когда производительность очень важна (например, для графических процессоров, встроенных систем с ограниченными аппаратными ресурсами по сравнению с персональным компьютером). как микроволновые печи, стиральные машины и т. д.). С другой стороны, интерпретаторы используются, когда вам нужна высокая мобильность. Например, один и тот же байт-код Java может быть запущен на разных платформах с использованием соответствующего интерпретатора (JVM)..