Re: Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]
Rodrigo Fuentealba
darkprox en gmail.com
Vie Nov 16 15:52:31 CLST 2007
El 16/11/07, Alejandro Weinstein <alejandro.weinstein en gmail.com> escribió:
> On Nov 16, 2007 10:23 AM, Franco Catrin L. <fcatrin en tuxpan.com> wrote:
> > Segun entiendo esos no son compilados reales, runcobol es un interprete,
> > no una maquina virtual.
>
> Cual es la diferencia entre un interprete y una maquina virtual? En
> google no pude encontrar una respuesta clara. Encontre por ejemplo:
En general son casi lo mismo. Las diferencias son poquísimas en cuanto
a funcionamiento.
Un intérprete es capaz de entender un código como "Hola Mundo" (por
ejemplo, en PHP), a través de parsear el archivo, quitarle los
espacios necesarios en la memoria, analizar sintácticamente y luego
recién hacer un puntero a la función que ejecuta.
<?php echo("Hola Mundo"); ?> se ejecuta así, tal como está, sin
necesidad de precompilar.
En el caso de la máquina virtual, funciona como una maquinita de
stack. Primero hay un compilador que convierte el código de:
public class holamundo
{
public static void main(String[ ] args)
{
System.out.println("Hola Mundo");
}
}
a algo que nosotros como buenos seres cuya estructura molecular está
basada en carbono no entendemos, pero en que la máquina no tiene para
qué esforzarse en destripar cadenas de caracteres, en saber si
funciona o no, simplemente pone un puntero al principio del archivo y
va leyendo y cargando las bibliotecas que requiere, enlazando en
tiempo de ejecución y hasta el final, y recogiendo basurita.
A ver si con eso me explico mejor con a qué me refería con el ejemplo
de RUNCOBOL de hace unos e-mails atrás.
--
Rodrigo Fuentealba
Más información sobre la lista de distribución Linux