Я досліджував перекладачів / укладачів, потім натрапив на JIT-Compilation - зокрема V8 Javascript Engine Google Chrome.
Мої запитання -
- Як це може бути швидше, ніж стандартне тлумачення?
- Чому JIT-Compilation не використовувався в першу чергу?
Моє поточне розуміння
Кожна програма Javascript запускається як вихідний код , потім, незалежно від способу виконання, в кінцевому підсумку переводиться на машинний код .
І JIT-Компіляція, і Інтерпретація повинні йти цим шляхом, так як же JIT-Компіляція може бути швидшою (також тому, що JIT обмежений часом, на відміну від AOT-Compilation)?Здається, що JIT-Compilation є відносно старим нововведенням , заснованим на статті про JIT-компіляцію у Вікіпедії .
"Найперший опублікований компілятор JIT, як правило, відноситься до роботи над LISP Маккарті в 1960 році ."
"Smalltalk (c. 1983 ) запровадив нові аспекти компіляції JIT. Наприклад, переклад на машинний код робився на вимогу, а результат був кешований для подальшого використання. Коли пам'ять стала дефіцитною, система видалила б частину цього коду та відновила це коли воно знову було потрібно ».
То чому для початку було інтерпретовано Javascript ?
Я дуже розгублений, і я провів багато досліджень з цього приводу, але не знайшов задовільних відповідей.
Тож чіткі, стислі відповіді були б вдячні. І якщо потрібно подати додаткові пояснення щодо перекладачів, JIT-компіляторів тощо, це також оцінено.