В чем отличие байт кода от машинного?

  1. Байт-кодом называется машинный код для виртуальной машины.
  2. Байт-код это промежуточный код. Он в свою очередь транслируется в машинный код виртуальной машиной.
    Например, исходный код программы на C# компилируется в байт-код, после чего виртуальная машина-CLR интерпретирует и исполняет этот промежуточный код.
  3. Байт-код это промежуточный подход, при котором программа преобразуется в промежуточный двоичный вид, интерпретируемый некой виртуальной машиной во время исполнения. Причиной вновь вспыхнувшего интереса к компиляторам стало появление быстрых и сложных 64-разрядных микропроцессоров, типичным представителем которых можно считать Intel Itanium. Все усовершенствования в архитектуре процессоров, такие как
    распараллеливание и предсказание ветвления, а также возможность резкого
    увеличения производительности, окажутся бесполезны до тех пор, пока программисты
    не начнут их реально использовать. .Байт-код Java преобразуется в машинный код с помощью специального
    интерпретатора, называемого виртуальной машиной Java (Java Virtual Machine
    JVM). JVM формирует выделенное пространство в памяти, которое отделено от памяти
    основной системы, для хранения байт-кода и порождаемых структур. Для программирования на языке Java или других JVM-совместимых языках, знание особенностей байт-кода не обязательно. Однако, как следует из публикации в журнале IBM developerWorks, понимание байт-кода и понимание механизмов его генерации компилятором Java помогает Java-программисту так же, как и знание языка ассемблера помогает программисту, пишущему на Си или С++.
  4. Незнаю!
  5. Байткод требует трансформации в машинный (JIT- или AOT-компиляция) или интерпретации чтобы быть выполненым, т. к. процессоры, за редким исключением (ARM Jazelle, ThumbEE), ничего не знаю о байткоде и о том, как его выполнять. Поскольку байткод не привязан к аппаратной архитектуре он 100% переносим - нужно лишь реализовать компилятор/интерпретатор для целевой платформы. Зачастую байткод обладает более развитой системой типов и поддерживает высокоуровневые инструкции типа "создать объект", "вызвать виртуальный метод" и т. п.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

75 + = 76