Re: Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]

Rodrigo Fuentealba darkprox en gmail.com
Vie Nov 16 21:56:36 CLST 2007


El 17/11/07, Franco Catrin L. <fcatrin en tuxpan.com> escribió:
> Alejandro Weinstein escribió:
> > On Nov 16, 2007 1:16 PM, Franco Catrin L. <fcatrin en tuxpan.com> wrote:
> >
> >> El segundo link casi me deja ciego ;)
> >>
> > [sobre la diferencia entre maquina virtual e interprete]

.java -> compilador -> bytecode -> JIT -> binario x86

> Luego tu procesador ejecuta el binario x86 generado como si hubiera sido
> hecho en C/ASM

.py -> compilador -> tokens -> interprete de tokens -> funciones del intérprete

> No hay generacion de codigo nativo, sino que el inteprete en base a los
> tokens comienza a ejecutar distintas secciones de si mismo.  Imaginate
> un gigante "if" o un gigante "switch/case" que va consumiendo tokens.

Excelente respuesta! Me quedó mucho más claro.

Yo pensaba que el bytecode de Java (CAFEBABE) se interpretaba igual
que el de Python.

Los conceptos de Java que tengo son lo que aprendí en el instituto,
que no fue mucho... de hecho tuve la mala suerte de que el profe se
iba a ir a fin de semestre así que tenía cero ganas de enseñarnos a
trabajar con Swing/AWT y con Java Server Pages :(

> Para el caso de python puedes mirar en Python/eval.c
> http://svn.pythonmac.org/python24/python24-fat/Python/ceval.c
>
> Para el caso de JIT hay una charla de Miguel de Icaza con ejemplos y
> todo, incluso generando bytecode a partir de Python, una de las gracias
> de Mono y .NET

¿La que dio en la UOC? Buenísima.

-- 
Rodrigo Fuentealba



Más información sobre la lista de distribución Linux