Compilador GNU para Java

Compilador GNU para Java
Tipo de Compilador
Autor Soluciones Cygnus [1]
Desarrollador Proyecto GNU
Sistema operativo similar a Unix
Primera edición 1998 [1] [2]
plataforma de hardware máquina virtual de Java
ultima versión 6.5 / 26 de octubre de 2018 ( 4 de diciembre de 2015 )
Licencia GNU GPL
Sitio web gcc.gnu.org/gcc-6/
 Archivos multimedia en Wikimedia Commons

GNU Compiler for Java ( GCJ o gcj ) es un compilador de lenguaje Java gratuito que forma parte de GNU Compiler Collection , pero a partir de 2017 ya no se mantiene y no formará parte de versiones futuras.

El GCJ puede compilar código fuente de Java a código de bytes de máquina virtual de Java o directamente a código de máquina en muchas arquitecturas de procesador . También puede compilar archivos de clase que contengan bytecode, o archivos JAR completos que contengan dichos archivos, en código de máquina.

La mayoría de las bibliotecas de tiempo de ejecución utilizadas por gcj provienen del proyecto GNU Classpath (cf. biblioteca libgcj ). A partir de gcj 4.3, gcj está integrado por ecj, el compilador Java de Eclipse . [3]

A partir de 2007, se ha trabajado mucho en el soporte de GNU Classpath para dos API de gráficos de Java : AWT y Swing . El soporte para AWT está en curso, seguido del soporte para Swing. [cuatro]

A partir de 2009, los nuevos cambios en gcj casi se han detenido. [5] El producto se encuentra actualmente en modo de mantenimiento.

A partir de 2015, no se han anunciado nuevos desarrollos de GCJ y el producto estaba en modo de mantenimiento, con el desarrollo del kit de herramientas Java de código abierto principalmente en OpenJDK. GCJ se eliminó del tronco de GCC el 30 de septiembre de 2016. El anuncio de su eliminación se realizó con el lanzamiento de GCC 7.1, que no lo contiene. GCJ sigue siendo parte de GCC 6.

Rendimiento

El código Java compilado en código nativo mediante GCJ debería tener un tiempo de inicio más rápido que el código de bytes equivalente que se ejecuta en la JVM [6] .

Sin embargo, una vez que se ejecuta Java, el código compilado por GCJ no se ejecutará necesariamente más rápido que el código de bytes ejecutado por una JVM moderna habilitada para JIT . Esto es cierto incluso cuando se invoca GCJ con opciones de optimización avanzadas como -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Que el programa compilado pueda o no superar a la JVM depende de las operaciones específicas realizadas por el código [7] .

Programas que utilizan el Compilador GNU para Java

Véase también

Notas

  1. 1 2 https://gcc.gnu.org/wiki/GCJ
  2. https://gcc.gnu.org/news/gcj-announce.txt
  3. gcj para usar el compilador Eclipse como front-end (enlace descendente) (8 de enero de 2007). Consultado el 20 de mayo de 2007. Archivado desde el original el 2 de mayo de 2012.  
  4. Las preguntas frecuentes de GCJ - Proyecto GNU - Free Software Foundation (FSF) . Consultado el 11 de julio de 2010. Archivado desde el original el 15 de enero de 2016.
  5. GCJ: Noticias archivadas el 18 de abril de 2008.
  6. GCJ: El compilador estático de Java de GNU (enlace descendente) . Consultado el 11 de julio de 2010. Archivado desde el original el 7 de junio de 2011. 
  7. Comparación de rendimiento de GCJ frente a Java JIT (enlace descendente) . Consultado el 11 de julio de 2010. Archivado desde el original el 25 de febrero de 2017. 

Enlaces