Подтвердить что ты не робот

Можно ли реализовать java-интерпретатор на оборудовании, который выполняет Java-байт-коды изначально?

если мы реализуем java-интерпретатор в оборудовании, то как мы можем достичь нейтральности архитектуры java-байт-кода... использует ли java JIT (только во временном интерпретаторе)? и как все это связано с концепцией виртуальной машины операционной системы и виртуальной машины Java (JVM)

4b9b3361

Ответ 1

Уже существует несколько аппаратных реализаций системы Java (то есть процессор, который может выполнять байт-коды), но они не стали мейнстримом. Это, скорее всего, потому, что реализация программного обеспечения также работает или даже лучше, поскольку процессор стал быстрее и быстрее.

Как вы узнаете при исследовании более подробно, детали реализации JVM не так важны (и варьируются довольно немного), но все они выполняют машинный язык JVM-java-байтового кода. Если вы остаетесь в мире Java и не ссылаетесь на "родной" материал, вы должны быть в порядке с любой версией, которую вы выберете.

Эта компания зарабатывает на предоставлении серверных систем, настроенных для программ Java, они могут вас заинтересовать: http://www.azulsystems.com/

Ответ 2

Да, вы можете. Хотя это похоже на то, что он застрял на стадии спецификации (или был оставлен), picoJava позволяет выполнять собственное исполнение байт-кода Java. picoJava имеет порт, доступный на FPGA. Существует Jazelle, а также для процессоров ARM.

Учитывая, что аппаратное обеспечение будет напрямую выполнять байт-код, все оптимизации также должны выполняться на аппаратном уровне. JIT не требуется, так как процессор будет запускать байт-код напрямую. Ведь всякая аппаратная реализация предполагает внедрение модели JVM, как определено в Спецификация виртуальной машины Java. Оптимизации, которые могут быть выполнены, будут на линии оптимизации аппаратного обеспечения - конвейерная обработка инструкций, использование кэшей и т.д.

Аппаратная нейтральность не теряется, так как исполняемый байт-код на аппаратной реализации будет продолжать работать и с программной реализацией. Это стандарт байт-кода, который позволяет Java быть аппаратно нейтральным.

Ответ 3

Да, существует несколько аппаратных реализаций Java. Однако они не всегда работают лучше, чем программное обеспечение, работающее на более универсальном кремнии.

Марк Лам написал несколько интересных записей в блогах по этому вопросу.

Ответ 4

  • Реализация JVM в оборудовании игнорирует преимущество запуска управляемого кода. Тогда было бы иначе, чем из любого другого родного кода. И да, нейтральность платформы также затруднена. Независимо от того, есть такие реализации, посмотрите серии процессоров aJile и ARM Jazelle. Однако они ориентированы на встроенные платформы.
  • Sun compiler, HotSpot использует JIT. Я лично не использовал других, но это должна быть очень используемая технология.
  • JVM можно рассматривать как ограниченный ресурс VM, ориентированный только на одну конкретную платформу (байт-код Java).