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.
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] .
Máquinas virtuales Java ( comparación ) | |
---|---|
sol , oráculo |
|
Implementaciones principales | |
Incrustado |
|
Otro | |
no soportado |
Java | |
---|---|
Plataformas | |
Tecnologías solares | |
Tecnologías clave de terceros | |
Historia |
|
Propiedades del lenguaje | |
Lenguajes de secuencias de comandos |
|
Conferencias Java |
|