Lenguajes compilados e interpretados



Siempre se ha recurrido a la comparación entre estos dos tipos de lenguajes, en su mayoría para ver cual es el mejor y más eficiente. Presentaremos ventajas y desventajas de cada uno, y su utilización en casos particulares donde la elección es primordial a la hora del éxito de un proyecto.

Los lenguajes compilados, como su nombre lo dice, necesitan un compilador para convertir nuestro código de programación a código máquina (el cual es ejecutable), y que éste, sea interpretado satisfactoriamente por la computadora. De esta manera, nuestro código fuente que escribimos queda totalmente fuera del alcance de los usuarios finales, los cuales sólo poseen el archivo ejecutable.

Los lenguajes interpretados no necesitan ningún tipo de compilador. A medida que la computadora los lee, los interpreta y ejecuta automáticamente, lo cual es un proceso mucho más lento que leer directamente un código máquina. Con respecto a su distribución, tendríamos que compartir nuestro código fuente si se requiere la utilización de mi programa en otra computadora o plataforma (código público).


Compilados Interpretados
Ventajas Desventajas Ventajas Desventajas
Preparados para ejecutarse No son multiplataforma Son multiplataforma Se requiere un intérprete
A menudo más rápidos Poco flexibles Son más sencillos de probar A menudo más lentos
El código fuente es inaccesible Se requiere un paso extra (compilación) Los errores se detectan fácilmente El código fuente es público


Definir que el código fuente debe ser accedido sólo por el programador toma un juicio personal, el cual no pretendo imponer a ninguno de ustedes.


Además de éstos tipos anteriormente mencionados, existe hoy en día un combinación de ambos, denominada aproximación intermedia. 

Lo que hacemos es compilar nuestro código de programación a bytecode (lenguaje intermedio), el cual se encuentra entre el lenguaje máquina y nuestro código fuente. Este código intermedio se puede distribuir enviándolo a diferentes personas, y cada persona lo compila para la plataforma en que lo necesite, ya sea Windows, MacOS o distribuciones Linux. Este proceso de compilación para una plataforma en particular es llamado Just in time.



Así funciona el proceso Just in time en Java

Como podemos observar, nuestro código fuente (.java) es compilado a bytecode (.class) que puede ser distribuido a cualquier plataforma o sistema operativo. ¿Pero como se logra esto?. ¿Quien interpreta el famoso bytecode en la máquina final?. La encargada de la interpretación es conocida como JVM (máquina virtual de Java). 

Entonces, teniendo instalada nuestra JVM podemos ejecutar nuestro programa en la computadora que queramos, en el sistema operativo que queramos.

"Write once, run anywhere"
"Escribelo una vez, ejecutalo donde quieras"

De esta forma Java utiliza Just in time para poder ser distribuido de una manera más flexible (como lo hacen los lenguajes interpretados), y de una manera más rápida (como lo hacen los lenguajes compilados).


1 comentarios:

Publicar un comentario