He estado investigando intérpretes / compiladores, luego me topé con JIT-Compilation, específicamente el motor Javascript V8 de Google Chrome.
Mis preguntas son
- ¿Cómo puede ser más rápido que la interpretación estándar?
- ¿Por qué no se utilizó JIT-Compilation en primer lugar?
Mi comprensión actual
Cada programa Javascript comienza como código fuente , luego, independientemente del método de ejecución, finalmente se traduce al código de la máquina .
Tanto JIT-Compilation como Interpretation deben seguir este camino, entonces, ¿cómo puede JIT-Compilation ser más rápido (también porque JIT tiene una limitación de tiempo, a diferencia de AOT-Compilation)?Parece que la compilación JIT es una innovación relativamente antigua , basada en el artículo de compilación JIT de Wikipedia .
"El primer compilador JIT publicado se atribuye generalmente al trabajo en LISP por McCarthy en 1960 ".
"Smalltalk (c. 1983 ) fue pionero en nuevos aspectos de las compilaciones JIT. Por ejemplo, la traducción al código de la máquina se realizó bajo demanda, y el resultado se almacenó en caché para su uso posterior. Cuando la memoria escaseaba, el sistema eliminaría parte de este código y se regeneraría cuando fue necesario de nuevo ".
Entonces, ¿por qué se interpretó Javascript para empezar ?
Estoy muy confundido y he investigado mucho sobre esto, pero no he encontrado respuestas satisfactorias.
Entonces, se agradecerían respuestas claras y concisas. Y si se necesita una explicación adicional sobre intérpretes, compiladores JIT, etc., eso también se agradece.