Intel Fortran Compiler
- 1 year ago
- 0
- 0
GNU Compiler for Java ( GCJ или gcj ) — это свободный компилятор языка Java , являющийся частью GNU Compiler Collection , но с 2017 года он больше не поддерживается и не будет частью будущих выпусков.
GCJ может компилировать исходный код Java в байткод виртуальной машины Java либо непосредственно в машинный код многих процессорных архитектур . Он также может компилировать , содержащие байткод, или целые JAR , содержащие такие файлы, в машинный код.
Большинство runtime-библиотек, используемых gcj, взято из проекта
GNU Classpath
(ср. библиотеку
libgcj
). По состоянию на gcj 4.3, gcj интегрируется ecj, Java-компилятором
Eclipse
.
По состоянию на 2007 год много работы ушло на поддержку в GNU Classpath двух графических Java API : AWT и Swing . Работа по поддержке AWT продолжается, после чего последует поддержка Swing.
По состоянию на 2009 год новые изменения в gcj почти остановлены. Продукт в настоящее время находится в режиме обслуживания.
По состоянию на 2015 год от GCJ не было анонсировано никаких новых разработок, и продукт находился в режиме обслуживания, при этом разработка Java-инструментария с открытым исходным кодом в основном происходила в OpenJDK. GCJ был удален из ствола GCC 30 сентября 2016 года. Объявление о его удалении было сделано с выпуском GCC 7.1, который не содержит его. GCJ остается частью GCC 6.
Java-код, скомпилированный в машинный код с помощью GCJ, должен иметь меньшее время запуска, чем эквивалентный байт-код, запущенный в JVM .
Однако, после запуска Java код, скомпилированный GCJ, не обязательно будет выполняться быстрее, чем байт-код, выполняемый современной JVM с включённым JIT . Это справедливо даже тогда, когда GCJ вызывается с продвинутыми опциями оптимизации, такими как -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Сможет ли скомпилированная программа превзойти по производительности JVM или нет, зависит от конкретных операций, выполняемых кодом .