Я недавно начал изучать Ruby. Я знаю, что Ruby - это интерпретируемый язык (хотя «каждый» язык таков, поскольку он интерпретируется процессором как машинный код). Но как интерпретатор Ruby преобразовывает код, написанный на Ruby, в машинный код? Я читал, что интерпретатор читает не исходный код, а байт-код, однако мне никогда не нужно компилировать, как в Java. Итак, это еще одна вещь, которую Ruby делает для вас? И если да, генерирует ли он байтовый код во время выполнения? Потому что вы никогда не получите файл .class, как в Java. И вдобавок ко всему я читал о компиляторах Just-In-Time, которые, очевидно, что-то делают с байтовым кодом, поэтому он работает быстрее.
Если это так, интерпретатор сначала просматривает весь исходный код, конвертирует его в байт-код, а затем компилирует его в другой раз с помощью JIT во время выполнения?
И, наконец, я НЕ ищу ответ с аспектом производительности, я просто хочу знать, как он обрабатывается, какие этапы он проходит и в какое время.
Спасибо за ваше время.
Я использую этот интерпретатор http: //www.ruby-lang. org / en /