Сейчас я буду иметь в виду и скажу, что интерпретируется практически КАЖДЫЙ язык программирования, будь то программный (Ruby, Python, Java) или аппаратный (C, C ++):)
Для реального ответа, хотя я не знаю о внутренней реализации Ruby, я уверен, что они, черт возьми, не разбирают оператор снова и снова и снова. Не используя байт-код в исходной реализации (или они уже мигрировали?), Они используют какое-то промежуточное представление (это хорошо видно, когда вы хотите написать для него C-расширения), просто выполняя их снова и снова. 1003 *