logistark

#28 y Docker nativo en Windows 10

logistark

#27 Pero es porque Rusia tiene armas núcleares y un ejercito mucho mayor que el de España. Entonces al final, España no puede ir de independiente. Necesitas aliados.

D

#44 De todas maneras JS en el fondo está hecho con C++ (V8, SpiderMonkey, Chakra). Así que JS es un interpreté de C++ y C++ al final será ensamblador o INTEL o AT&T y después acabará siendo instrucciones (esto ya no es lenguaje) x86, ARM o lo que le toque lol .

D

#47 Ya lo es. En una charla sobre optimizar JS del Google I/O 2012 se ve como V8 transforma JS en código nativo directamente, con dos cojones. Es un compilador en runtime, sin mas. De hecho por ejemplo los enteros sin decimales de menos de 31 bits se almacenan en un tipo de dato de 32 bit y el ultimo bit sirve para indicar que es un small integer. Pues se veía un código ensamblador que usaba la instrucción test ( un and que no guarda el resultado ) para comprobar el ultimo bit y determinar si ese objeto numérico era un numero pequeño o debía ir en coma flotante de alta precisión, y saltar a la dirección necesaria para que V8 gestione el objeto como lo que es. Y ya te digo, unas cuantas lineas de ensamblador.

Con V8, JavaScript es compilado ( y muy bien optimizado ... )

Saludos !

logistark

#151 vaya cuñaos hay, todo el mundo opinando sin tener ni puta idea de arquitectura de sistemas operativos.

frankiegth

Para #158. Esa es otra. Con todos los sistemas operativos de Micro$oft a partir de Windows 95 y su mania ratoniana anti-terminales de texto en lugar de aprender se desaprende.

Nunca me ha gustado que me hagan perder el tiempo y el control con sistemas operativos que no se sabe ni lo que están haciendo con la parpadeante luz del disco duro sin que les hayas solicitado nada.
(CC #151)

logistark

#57 dejalos, que estos son los que luego van con los colegos presumiendo del iphone nuevo que acaba de salir.

logistark

#27 ni idea, también estaba Jython. Pero no se yo si realmente se puede hacer JIT con Python o cualquier lenguaje dinámico. En un lenguaje con tipado estático supongo que se pueden hacer asunciones a la hora de optimizar a código máquina. Del tipo que determinada variable va a ser siempre un entero y puedas dejar esa parte compilada a código máquina. En cambio en un lenguaje dinámico mi impresión es que ese tipo de asunciones no se pueden hacer ya que en debido a alguna condición esa variable podría pasar de comportarse como un entero a una cadena de caracteres. Aunque supongo que existirá alguna técnica para que se pueda hacer de alguna forma.

logistark

#28 la LLVM da un backend para compilar Ahead of Time o Just in Time. Con o sin Garbage Collector. Es decir, tu puedes definirte un lenguaje y crear un compilador que compile a lenguaje intermedio de LLVM. Y LLVM ya se encarga de compilarlo a código máquina. Y de ahí ya obtienes un binario con tus unos y ceros para que se ejecute directamente. Y ahí esta el compilador https://en.wikipedia.org/wiki/Clang. Que compila C, C++, Objective-C, Objective-C++, OpenMP, OpenCL y CUDA a código máquina usando LLVM. Es el compilador por defecto de FreeBSD, MINIX. Se usa también para compilar con Xcode para dispositivos iOs y Mac Os X. Pero vamos como es una abreviatura de Virtual Machine sera una Virtual Machine.

Pero bueno, una "máquina virtual" tiene que ser más lenta ¿no? Pues no. http://www.javaworld.com/article/2076593/performance-tests-show-java-as-fast-as-c--.html?page=2

En fin, que hablas de cosas que no tienes ni puta idea. Estudia compiladores, infórmate y aprende.

D

#26 Si, pero me gustaría que alguien de por aquí, me contara su experiencia con este tipo de compiladores JIT en Python.

logistark

#27 ni idea, también estaba Jython. Pero no se yo si realmente se puede hacer JIT con Python o cualquier lenguaje dinámico. En un lenguaje con tipado estático supongo que se pueden hacer asunciones a la hora de optimizar a código máquina. Del tipo que determinada variable va a ser siempre un entero y puedas dejar esa parte compilada a código máquina. En cambio en un lenguaje dinámico mi impresión es que ese tipo de asunciones no se pueden hacer ya que en debido a alguna condición esa variable podría pasar de comportarse como un entero a una cadena de caracteres. Aunque supongo que existirá alguna técnica para que se pueda hacer de alguna forma.