Pesquisei Intérpretes / Compiladores, depois me deparei com o JIT-Compilation - especificamente o V8 Javascript Engine do Google Chrome.
Minhas perguntas são -
- Como pode ser mais rápido que a Interpretação padrão?
- Por que o JIT-Compilation não foi usado em primeiro lugar?
Meu entendimento atual
Todo programa Javascript começa como código-fonte e, independentemente do método de execução, é traduzido para o código da máquina .
Tanto a compilação de JIT quanto a interpretação devem seguir esse caminho; portanto, como a compilação de JIT pode ser mais rápida (também porque o JIT é com tempo limitado, diferentemente da compilação de AOT)?Parece que a compilação JIT é uma inovação relativamente antiga , baseada no artigo de compilação JIT da Wikipedia .
"O primeiro compilador JIT publicado é geralmente atribuído ao trabalho no LISP por McCarthy em 1960 ".
"Smalltalk (c. 1983 ) foi pioneiro em novos aspectos das compilações JIT. Por exemplo, a tradução para código de máquina foi feita sob demanda e o resultado foi armazenado em cache para uso posterior. Quando a memória se tornasse escassa, o sistema excluiria parte desse código e regeneraria quando era necessário novamente. "
Então, por que o Javascript foi interpretado para começar ?
Estou muito confuso e pesquisei bastante sobre isso, mas não encontrei respostas satisfatórias.
Respostas tão claras e concisas seriam apreciadas. E se uma explicação adicional sobre intérpretes, compiladores JIT, etc. precisar ser trazida, isso também será apreciado.