Как выполняется код Ruby

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

Если это так, интерпретатор сначала просматривает весь исходный код, конвертирует его в байт-код, а затем компилирует его в другой раз с помощью JIT во время выполнения?

И, наконец, я НЕ ищу ответ с аспектом производительности, я просто хочу знать, как он обрабатывается, какие этапы он проходит и в какое время.

Спасибо за ваше время.

Я использую этот интерпретатор http: //www.ruby-lang. org / en /

10
задан user626912 21 February 2011 в 17:13
поделиться