Другие языки программирования и технологии
В чем отличие байт кода от машинного?
Байт-кодом называется машинный код для виртуальной машины.
Стас Грибков
Байт код - это упрощенный исходный код. Он переносим так же как и исходный, но создан не для чтения программистами, а для дальнейшей компиляции. Его плюс в том, что он меньше весит и быстрее компилируется.
Стас Грибков
То, что он компилируется быстрее и делает его широко используемым в интерпретируемых языках, которые компилятся на лету. Но далеко не все интерпретируемые языки являются языками, работающими на виртуальных машинах, как Java или C#.
Байт-код — это промежуточный подход, при котором программа преобразуется в промежуточный двоичный вид, интерпретируемый некой «виртуальной машиной» во время исполнения. Причиной вновь вспыхнувшего интереса к компиляторам стало появление быстрых и сложных 64-разрядных микропроцессоров, типичным представителем которых можно считать Intel Itanium. Все усовершенствования в архитектуре процессоров, такие как
распараллеливание и предсказание ветвления, а также возможность резкого
увеличения производительности, окажутся бесполезны до тех пор, пока программисты
не начнут их реально использовать. .Байт-код Java преобразуется в машинный код с помощью специального
интерпретатора, называемого виртуальной машиной Java (Java Virtual Machine —
JVM). JVM формирует выделенное пространство в памяти, которое отделено от памяти
основной системы, для хранения байт-кода и порождаемых структур. Для программирования на языке Java или других JVM-совместимых языках, знание особенностей байт-кода не обязательно. Однако, как следует из публикации в журнале IBM developerWorks, «понимание байт-кода и понимание механизмов его генерации компилятором Java помогает Java-программисту так же, как и знание языка ассемблера помогает программисту, пишущему на Си или С++».
распараллеливание и предсказание ветвления, а также возможность резкого
увеличения производительности, окажутся бесполезны до тех пор, пока программисты
не начнут их реально использовать. .Байт-код Java преобразуется в машинный код с помощью специального
интерпретатора, называемого виртуальной машиной Java (Java Virtual Machine —
JVM). JVM формирует выделенное пространство в памяти, которое отделено от памяти
основной системы, для хранения байт-кода и порождаемых структур. Для программирования на языке Java или других JVM-совместимых языках, знание особенностей байт-кода не обязательно. Однако, как следует из публикации в журнале IBM developerWorks, «понимание байт-кода и понимание механизмов его генерации компилятором Java помогает Java-программисту так же, как и знание языка ассемблера помогает программисту, пишущему на Си или С++».
Байт-код это промежуточный код. Он в свою очередь транслируется в машинный код виртуальной машиной.
Например, исходный код программы на C# компилируется в байт-код, после чего виртуальная машина-CLR интерпретирует и исполняет этот промежуточный код.
Например, исходный код программы на C# компилируется в байт-код, после чего виртуальная машина-CLR интерпретирует и исполняет этот промежуточный код.
Байткод требует трансформации в машинный (JIT- или AOT-компиляция) или интерпретации чтобы быть выполненым, т. к. процессоры, за редким исключением (ARM Jazelle, ThumbEE), ничего не знаю о байткоде и о том, как его выполнять. Поскольку байткод не привязан к аппаратной архитектуре он 100% переносим - нужно лишь реализовать компилятор/интерпретатор для целевой платформы. Зачастую байткод обладает более развитой системой типов и поддерживает высокоуровневые инструкции типа "создать объект", "вызвать виртуальный метод" и т. п.
Похожие вопросы
- Вопрос из разряда компиляторов. На С++ написан код, генерирующий машинный код из команд на языке ассемблер.
- Ассемблер, двоичный код, и машинный код это одно и тоже?
- Какое главное отличие хорошего кода от плохого?
- Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?
- [Машинный код] Как?
- Как понять машинный код ?(Компилятор переводит исходный код компьютерной программы в машиный код).
- Машинный код.
- сколько чисел в машинном коде ?
- Программирование в машинных кодах.
- Биты и байты