Проекты по созданию компиляторов из Java в JavaScript и исполняемые файлы

21 января 2018 года

В рамках проекта TeaVM развивается компилятор, позволяющий компилировать Java-байткод в JavaScript и WebAssembly для последующего выполнения в браузере. Ключевым отличием от проекта GWT (Google Web Toolkit) является то, что TeaVM выполняет трансляцию на уровне байткода (может компилировать файлы *.class или *.jar), без привязки к исходным текстам на языке Java, что позволяет компилировать проекты на языках Kotlin и Scala. Код TeaVM распространяется под лицензией Apache 2.0.

Основной целью TeaVM является предоставление средств по созданию web-приложений для разработчиков знакомых с Java, унификации платформы для разработки (фронтэнд на базе тех же технологий, что и бэкенд) или при необходимости задействования в web-приложении уже имеющегося кода на Java. TeaVM по возможности сохраняет оригинальную структуру методов, выдавая читаемый и понятный JavaScript. Для разработки одностраничных web-приложений на Java, Kotlin или Scala предлагается web-фреймворк Flavour, похожий на Angular, но базирующийся на идиомах Java, а не JavaScript.

Для ускорения выполнения результирующего кода и сокращения его размера применяется изощрённый оптимизатор, который способен выполнять девиртуализацию виртуальных вызовов в статические вызовы функций, исключать неиспользуемый код, повторно использовать одну и ту же локальную переменную для хранения значений нескольких переменных, использовать сокращённые имена методов. Важной особенностью является поддержка преобразования в JavaScript многопоточного кода, который разворачивается в линейное представление с эмуляцией нескольких логических потоков в одном физическом потоке.

Также можно отметить фреймворк

Источники править


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

Комментарии

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