Компилятор GNU для Java

редактировать
Компилятор GNU для Java
Gcj2.png
Разработчик (и) Проект GNU
Первоначальный выпуск6 сентября 1998 г.; 22 года назад (1998-09-06)
Окончательный выпуск 6.5 / 26 октября 2018 г.; 23 месяца назад (26.10.2018)
Операционная система Unix-подобная
Тип Компилятор
Лицензия GNU GPL
Веб-сайтgcc. gnu.org

Компилятор GNU для Java (GCJ ) - это бесплатный компилятор для Язык программирования Java. Он был частью Коллекции компиляторов GNU более десяти лет, но по состоянию на 2017 год он больше не поддерживается и не будет частью будущих выпусков.

GCJ компилирует исходный код Java От до виртуальной машины Java байт-код или до машинного кода для ряда архитектур ЦП. Он также мог скомпилировать файлы классов и целые JAR, содержащие байт-код, в машинный код.

Содержание

  • 1 История
  • 2 Производительность
  • 3 Скомпилированный собственный интерфейс ( CNI)
    • 3.1 Сравнение использования языков
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки

История

Исходный источник библиотек времени выполнения GCJ взят из GNU Classpath, но есть разница в коде между библиотеками libgcj. GCJ 4.3 использует Eclipse Compiler for Java в качестве интерфейса.

В 2007 году была проделана большая работа по реализации поддержки двух графических API Java в GNU Classpath : AWT и Swing. Поддержка программного обеспечения для AWT все еще находится в разработке. «Как только поддержка AWT заработает, можно рассмотреть возможность поддержки Swing. Существует по крайней мере одна частичная реализация бесплатного программного обеспечения Swing, которая может быть использована». GNU CLASSPATH так и не был завершен даже до статуса Java 1.2 и теперь, похоже, полностью заброшен.

По состоянию на 2015 год от GCJ не объявлялось о новых разработках, и продукт находился в режиме обслуживания, при этом разработка набора инструментов Java с открытым исходным кодом в основном происходила в рамках OpenJDK. GCJ был удален из GCC trunk 30 сентября 2016 года. Объявление о его удалении было сделано с выпуском GCC 7.1, который его не содержит. GCJ остается частью GCC 6.

Производительность

Функция компиляции в GCJ должна иметь более быстрое время запуска, чем эквивалентный байт-код, запускаемый в JVM при компиляции кода Java в машинный код.

Скомпилированный собственный интерфейс (CNI)

Скомпилированный собственный интерфейс (CNI ), ранее называвшийся «Собственный интерфейс Cygnus», является программная среда для GCJ, которая позволяет Java-коду вызывать и вызывать собственными приложениями (программами, специфичными для платформы оборудования и операционной системы) и библиотеками, написанными на C ++.

CNI очень похож на структуру JNI (Java Native Interface), которая входит в стандартную комплектацию различных виртуальных машин Java.

Сравнение использования языков

Авторы CNI заявляют о различных преимуществах перед JNI:

Мы используем CNI, потому что думаем, что это лучшее решение, особенно для реализации Java, основанной на идее, что Java - это просто еще один язык программирования, который можно использовать. реализован с использованием стандартных методов компиляции. Учитывая это, а также идею о том, что языки, реализованные с использованием Gcc, должны быть совместимы там, где это имеет смысл, из этого следует, что соглашение о вызовах Java должно быть максимально похоже на то, что используется для других языков, особенно C ++, поскольку мы можем рассматривать Java как подмножество C ++. CNI - это просто набор вспомогательных функций и соглашений, построенных на идее, что C ++ и Java имеют * одинаковые * соглашения о вызовах и структуру объекта; они бинарно совместимы. (Это упрощение, но достаточно близкое.)

CNI зависит от классов Java, появляющихся как классы C ++. Например, для Java-класса

public class Int {public int i; общедоступный Int (int я) {this.i = я; } public static Int zero = new Int (0); }

можно использовать класс следующим образом:

#include #include Int * mult (Int * p, int k) {if (k == 0) return Int :: zero; // Доступ к статическому члену. вернуть новый Int (p->i * k); }

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • значок Портал компьютерного программирования
  • Excelsior JET (компилятор собственного кода Java Excelsior)
  • IcedTea
  • Kaffe
  • SableVM
  • JamVM
  • Apache Harmony
  • Jikes
  • GraalVM - Функциональность собственного образа GraalVM - это передовая технология компиляции, которая создает исполняемые двоичные файлы файлов классов.
  • Компиляторы виртуальных машин C в Java
  • Бесплатные реализации Java
  • Kotlin - Kotlin / Native - это технология для компиляции Kotlin в собственные двоичные файлы, которые работают без какой-либо JVM. Он включает в себя бэкэнд на основе LLVM для компилятора Kotlin и встроенную реализацию библиотеки времени выполнения Kotlin.

Ссылки

Внешние ссылки

.

Последняя правка сделана 2021-05-21 09:10:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте