Este es un proyecto cancelado que no recibe actualizaciones. No obstante, puedes acceder a su archivo como referencia.

Versión Cero

Multitud de lenguajes para la VM de Java o .NET

Java popularizó el concepto de Máquina Virtual (VM) y .NET, con su CLR (Common Language Runtime), apuesta también por esta tecnología.

¿En qué consiste? En que los programas no son directamente compilados para el código máquina del ordenador donde se va a ejecutar. En su lugar, se genera un código máquina intermedio que es en tiempo de ejecución interpretado por la VM o el CLR.

Esto ha facilitado el que se desarrollen nuevos lenguajes o que se recuperen lenguajes ya casi olvidados de los cuales se han creado compiladores que aprovechan estas máquinas virtuales y generan código para ellas.

De hecho, uno de los argumentos de venta de Microsoft con su plataforma .NET es esta característica multi-lenguaje de la misma. Un desarrollador puede elegir cualquiera de los lenguajes que disponen de compilador para el CLR y buena muestra de ello es esta lista de lenguajes para .NET.

Pero Java no se queda atrás y aunque nunca ha estado demasiado extendido, existen decenas de lenguajes que compilan byte-codes de la JVM. En Programming Languages for the Java Virtual Machine se recopilan casi 200.

Comentarios
1 Guti
24 noviembre 2005, 10:36

Los programas en .NET no son interpretados en tiempo de ejecución, sino compilados en tiempo de ejecución.

Es decir, no se va interpretando instrucción a instrucción como hace Flash y las primeras versiones de Java, si no que todo el conjunto de código intermedio se compila en memoria a código nativo, y se ejecuta.


2 Pirx
26 noviembre 2005, 21:36

Creo que la definición de máquina virtual es imprecisa y de ahí viene la confusión.

Una máquina virtual no es una capa, sino una especificación, que puede implementarse como un intérprete, como un intérprete de P-Code, como un compilador JIT, o incluso como un compilador tradicional.


Acerca - Contacto - Información legal y técnica - Condiciones de uso - Noticias sobre el mundo del Desarrollo de Software.