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

Horst H. von Brand vonbrand en inf.utfsm.cl
Mar Nov 27 17:31:45 CLST 2007


Alejandro Weinstein <alejandro.weinstein en gmail.com> wrote:
> 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:

Ninguna.

Un procesador no es mas que un interprete del lenguaje de maquina del caso,
implementado en silicio, una maquina virtual es el mismo interprete pero
implementado en C (o el lenguaje du jour). Y al otro extremo, nosotros
programamos contra la "maquina virtual C", que se implementa (normalmente,
incidentalmente) via gcc y otras tonteras mas. Nada impide que tal cosa (o
incluso lenguajes mucho mas complejos) se interpretara directamente

Generalmente se hace la distincion que maquina virtual interpreta un
lenguaje de "bajo nivel" == "nivel de maquina", mientras un interprete
maneja un lenguaje de "alto nivel" == "lenguaje de a deveras". Pero es una
distincion de grado, no cualitativa. He visto llamar interpretes a
implementaciones de lenguajes de relativamente bajo nivel, como el lenguaje
interno de Perl o la maquina virtual comunmente usada para explicar Prolog,
e incluso algo tan elemental como el "threaded code" popular en FORT
(basicamente, una lista de direcciones de subrutinas a llamar y pocazo
mas), y a cosas como bash e incluso un interprete de C (!). En rigor, Perl,
Ruby, Python se compilan a una representacion interna que luego se
interpreta, no son interpretes directos; los shell por otro lado (y los
BASIC de antan~o) toman el codigo fuente, lo analizan y ejecutan linea a
linea.

Por otro lado, hay implementaciones en silicio de JVM, y del interprete
interno de FORT; y por el otro lado cosas como Bochs, la divertida CPU que
desarrollaba Transmeta, y supongo recordaran las epocas en que aun no
habian AMD64 para la venta pero ya Red Hat ofrecia su distribucion para esa
maquina (desarrollada en muy buena parte sobre emuladores). Y, last but not
least, esta la mitologica MMIX, para la cual incluso hay un gcc
perfectamente funcional (parte de la distribucion oficial en fuente,
incluso). Solo que nadie se ha puesto con las lucas para realizar esa linda
arquitectura...
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513


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