Почему (python | ruby) интерпретируется? - PullRequest
18 голосов
/ 26 ноября 2009

По каким техническим причинам такие языки, как Python и Ruby, интерпретируются (из коробки), а не компилируются? Мне кажется, что людям, знающим в этой области, не должно быть слишком сложно заставить эти языки не интерпретироваться так, как они есть сегодня, и мы увидим значительный прирост производительности. Так что, конечно, я что-то упускаю.

Ответы [ 12 ]

1 голос
/ 18 декабря 2009

Компилировать Ruby по крайней мере очень сложно. Я работаю над одним, и как часть этого я написал сообщение в блоге , перечисляющее некоторые проблемы здесь .

В частности, Ruby страдает от очень нечеткой (то есть несуществующей) границы между фазами «чтение» и «выполнение», что затрудняет эффективную компиляцию. Вы можете просто подражать тому, что делает переводчик, но тогда вы не увидите большого ускорения, так что это не будет стоить усилий. Если вы хотите скомпилировать его эффективно, вы столкнетесь с множеством дополнительных сложностей, чтобы справиться с экстремальным уровнем динамичности в Ruby.

Хорошая новость заключается в том, что - это техники для преодоления этого. Self, Smalltalk и Lisp / Scheme успешно справились с большинством одних и тех же проблем. Но требуется время, чтобы просеять его и выяснить, как заставить его работать с Ruby. Также не помогает, что у Руби очень запутанная грамматика.

1 голос
/ 26 ноября 2009

По замыслу.

Авторы хотели что-то, где они могли бы писать сценарии.

Python компилируется при первом запуске, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...