В чём разница между динамической (JIT) компиляцией и интерпретацией кода? (Может, неправильно поставлен вопрос, но я новичок, что ж делать. Пытался найти ответ в интернете, но, видимо, не нашёл (может, плохо искал)) (Пожалуйста, без упрощений, максимально подробно)
1 Answers
Динамическая компиляция это компиляция из псевдокода в коды ассемблера для конкретного процессора. Подразумевается, что процессор на котором компилируется псевдокод это тот же самый процессор, на котором будет выполнятся откомпилированная программа. Подразумевается, что компиляция происходит из псевдокода, хотя теоретически ничего не мешает проводить эту компиляцию из исходников.
Интерпретация кода это выполнение кода (псевдокода или прямо текста программы) в интерпретаторе (иногда это называют исполняющей системой execution system). При этом интерпретатор сам представляет собой отдельную программу. А все переменные входной программы содержатся во внутренних структурах интерпретатора.
UPD1:
Динамической эта компиляция называется потому, что псевдокод общий для всех платформ, а компиляция в коды конкретного процессора производится при установке или первом запуске программы на этом конкретном процессоре. В отличии от статической компиляции, когда компиляция производтся один раз под известный процессор, а пользователи скачивают уже бинарник.
- 5,019
-
Да, спасибо, сам уже нашёл ответ, действительно, плохо искал. – Алексей Aug 31 '18 at 08:20