2015-06-02 2 views
-1

По моему мнению, интерпретатор Python по умолчанию (CPython) компилирует исходный код в байт-код, а затем интерпретирует байт-код в машинный код.Разница между PyPy и JVM

PyPy, с другой стороны, использует JIT для оптимизации часто интерпретируемого байт-кода в скомпилированный машинный код. Как это отличается от JVM? JVM - это интерпретатор + компилятор. Он компилирует исходный код в байт-код, а затем оптимизирует часто интерпретируемый байт-код в скомпилированный машинный код.

Есть ли какая-либо другая разница?

+0

JVM - это виртуальная машина, а не интерпретатор + компилятор. Компилятор Java компилирует исходный код в байт-код. – Leon

+0

Это действительно широк. JVM и PyPy - совершенно разные программы. Они одинаковы в широком смысле как для запуска кода, так и для использования схожих технологий, но есть тонны различий на всех уровнях. Это похоже на то, что разница между двумя небоскребами. – user2357112

+0

Не совсем тот же вопрос, но достаточно близко, чтобы информация была ценной. http://stackoverflow.com/questions/441824/java-virtual-machine-vs-python-interpreter-parlance – Leon

ответ

0

(CPython) компилирует исходный код в байт-код, а затем интерпретирует байт-код

  • CPython можете исходный код Eval строки, но его компиляции в байт-код для получения дополнительной производительности интерпретации.
  • PyPy также интерпретирует, но может переводить исходный код в машинный код (или C, JVM-байт-код, CIL).
  • Java компилирует исходный код для машинного кода JVM. Далее JVM запускает этот код внутри себя. Также JVM включает JIT, который помогает преобразованию JVM в настоящее время исполняет байтовый код в машинный код. Read more.
Смежные вопросы