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