Compilator GNU pentru Java

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.

Performanță

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] .

Programe care utilizează compilatorul GNU pentru Java

Vezi și

Note

  1. 1 2 https://gcc.gnu.org/wiki/GCJ
  2. https://gcc.gnu.org/news/gcj-announce.txt
  3. gcj să folosească compilatorul Eclipse ca front end (downlink) (8 ianuarie 2007). Consultat la 20 mai 2007. Arhivat din original pe 2 mai 2012.  
  4. Întrebările frecvente ale GCJ - Proiectul GNU - Free Software Foundation (FSF) . Consultat la 11 iulie 2010. Arhivat din original la 15 ianuarie 2016.
  5. GCJ: Știri arhivate 18 aprilie 2008.
  6. GCJ: Compilatorul GNU Static Java (link descendent) . Preluat la 11 iulie 2010. Arhivat din original la 7 iunie 2011. 
  7. Comparația performanței GCJ vs Java JIT (link în jos) . Consultat la 11 iulie 2010. Arhivat din original la 25 februarie 2017. 

Link -uri