miércoles, 4 de abril de 2012

El Proceso de compilación en Java

Los programas Java no son ejecutables, es decir que no se compilan como los programas en C o C++. En su lugar, son interpretados por una aplicación conocida como la máquina virtual de Java (JVM). Gracias a ello no tienen porque incluir todo el código y librerías propias de cada sistema.

Previamente el código fuente en Java se tiene que precompilar generando un código (que no es directamente ejecutable) previo conocido como bytecode o J-code. Ese código (generado normalmente en archivos con extensión .class) es el que es ejecutado por la máquina virtual de Java que interpreta las instrucciones de los bytecodes, ejecutando el código de la aplicación. Por esta razón, podemos decir que Java es híbrido, porque es compilado e interpretado a la vez.

El bytecode se puede ejecutar en cualquier plataforma, lo único que se requiere es que esa plataforma posea un intérprete adecuado (la máquina virtual específica para esa plataforma). La máquina virtual de Java, además es un programa muy pequeño y que se distribuye gratuitamente para prácticamente todos los sistemas operativos como Windows, Mac OS y Unix/Linux. Si deseamos poder ejecutar aplicaciones Java en nuestra computadora podemos descargar el Java Runtime Enviroment (JRE), en cambio si deseamos también programar y compilar nuestros propios archivos escritos en Java debemos de descargar el Java Developer Kit (JDK). En el JDK viene incluido el JRE.

En Java la unidad fundamental del código es la clase. Son las clases las que se distribuyen en el formato bytecode de Java y éstas se cargan dinámicamente durante la ejecución del programa Java.


Fuente:

1 comentario:

  1. Hola,
    He leido varios de los articulos que haz publicado. Este articulo en especial me parece interesante, pues habla del proceso de compilacion en java. Sin embargo, me gustaria, en caso de que contaras con esa informacion, que hablaras sobre los procesos de analisis y gestion que se realizan durante el proceso de compilacion. Analisis lexico, sintactico, semanatico, generacion de codigo objeto. Saludos

    ResponderEliminar