Compilator GNU pentru Java | |
---|---|
Tip de | Compilator |
Autor | Cygnus Solutions [1] |
Dezvoltator | Proiectul GNU |
Sistem de operare | asemănător Unix-ului |
Prima editie | 1998 [1] [2] |
Platformă hardware | Mașină virtuală Java |
ultima versiune | 6.5 / 26 octombrie 2018 ( 4 decembrie 2015 ) |
Licență | GNU GPL |
Site-ul web | gcc.gnu.org/gcc-6/ |
Fișiere media la Wikimedia Commons |
GNU Compiler for Java ( GCJ sau gcj ) este un compilator gratuit de limbaj Java care face parte din GNU Compiler Collection , dar din 2017 nu mai este întreținut și nu va face parte din versiunile viitoare.
GCJ poate compila codul sursă Java în bytecode Java Virtual Machine sau direct în codul mașinii pe multe arhitecturi de procesor . De asemenea, poate compila fișiere de clasă care conțin bytecode, sau JAR întregi care conțin astfel de fișiere, în codul mașinii.
Majoritatea bibliotecilor de rulare utilizate de gcj provin din proiectul GNU Classpath (cf. library libgcj ). Începând cu gcj 4.3, gcj este integrat de ecj, compilatorul Eclipse Java . [3]
Începând cu 2007, s-a muncit mult în suportul GNU Classpath pentru două API-uri grafice Java : AWT și Swing . Suportul pentru AWT este în curs de desfășurare, urmat de suport pentru Swing. [patru]
Începând cu 2009, noile modificări aduse gcj aproape s-au oprit. [5] În prezent, produsul este în modul de întreținere.
Începând cu 2015, nu au fost anunțate noi dezvoltări de la GCJ, iar produsul era în modul de întreținere, dezvoltarea setului de instrumente Java open source având loc în principal în OpenJDK. GCJ a fost scos din portbagajul GCC pe 30 septembrie 2016. Anunțul eliminării sale a fost făcut odată cu lansarea GCC 7.1, care nu îl conține. GCJ rămâne parte a GCC 6.
Codul Java compilat în cod nativ folosind GCJ ar trebui să aibă un timp de pornire mai rapid decât bytecode echivalent care rulează în JVM [6] .
Cu toate acestea, odată ce Java rulează, codul compilat de GCJ nu va rula neapărat mai rapid decât bytecode executat de un JVM modern, activat pentru JIT . Acest lucru este valabil chiar și atunci când GCJ este invocat cu opțiuni avansate de optimizare, cum ar fi -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Dacă programul compilat poate depăși JVM-ul sau nu depinde de operațiunile specifice efectuate de codul [7] .
Mașini virtuale Java ( comparație ) | |
---|---|
Soare , Oracol | |
Implementări majore | |
Încorporat |
|
Alte | |
Neacceptat |
Java | |
---|---|
Platforme | |
Sun Technologies | |
Tehnologii cheie ale terților | |
Poveste |
|
Proprietățile limbajului | |
Limbaje de scripting |
|
conferințe Java |
|