BicaVM — написанная на JavaScript виртуальная машина для запуска программ на языке Java

21 ноября 2011 года

Представлен новый проект BicaVM, в рамках которого создана реализация Java VM (JVM), написанная на JavaScript и способная выполняться в любом современном браузере.

Мотивом создания проекта послужило желание интегрировать в браузер виртуальную машину, в которой мог бы выполняться универсальный байткод. Суть идеи в том, что вместо поддержки какого определённого языка программирования в браузер предлагается добавить абстрактную виртуальную машину, которая позволяла бы организовать выполнение кода на различных языках программирования, не ограниченных одним JavaScript. В качестве достоинств такого подхода называется автоматическая изоляция кода и возможность сохранения среза состояния JVM на сервере, что позволит обеспечить независимую от браузера персистентность. Другим плюсом является обеспечение выполнения Java-программ на платформах, изначально не поддерживающих Java, например, BicaVM успешно выполняется на iPad/iPhone.

В отличие от инструментов GWT (Google Web Toolkit) и Java2Script (Eclipse-плагин), которые транслируют исходные тексты на языке Java в JavaScript, или j2js (Архивная копия от 10 мая 2020 на Wayback Machine) и Orto ( копия на GitHub, которые преобразуют Java-байткод в JavaScript, проект BicaVM занимается непосредственно выполнением байткода JVM. По заявлению разработчиков ещё совсем недавно написание интерпретатора байткода на языке JavaScript трудно было себе представить, но бурное развитие JavaScript-движков в направлении увеличения производительности, сделали казавшееся невозможным явью. Несмотря на то, что BicaVM в настоящее время выполняет байткод значительно медленнее нативного JVM, разработчики не видят преград, чтобы довести скорость работы до терпимой, реализовав поддержку оптимизации на этапе инициализации и JIT-компиляции в JavaScript.

В настоящее время разработка носит главным образом концептуальный характер, но с некоторыми ограничениями уже может выполнять Java-код. В частности, поддерживается интерпретация примерно 60% байткода JVM и подготовлен интерфейс JNI для трансляции вызова Java-функций в JavaScript. Для обеспечения запуска полноценных Java-проектов предстоит ещё проделать много работы, например, подготовить полноценное runtime-окружение и провести дополнительные оптимизации производительности.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «BicaVM — написанная на JavaScript виртуальная машина для запуска программ на языке Java», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.