Можно ли скомпилировать байт-код Java в нативный код, используя pypy? - PullRequest
2 голосов
/ 27 февраля 2012

pypy в настоящее время переводит Rpython в собственный код, используя Pluggable JIT и GC.В настоящее время он имеет внешний интерфейс Python.Мне интересно, можно ли написать внешний интерфейс Java Bytecode для pypy, создав альтернативную классную JVM (написанную на (R) Python)

1 Ответ

3 голосов
/ 28 февраля 2012

Интерпретатор RPython для байт-кода Java не был бы компилятором для байт-кода Java в нативный код. Код RPython компилируется в собственный код, а не в код, интерпретируемый интерпретатором.

Во время выполнения (частично) интерпретируемый код будет JIT-скомпилирован в собственный код, но это совсем другое дело, и виртуальная машина HotSpot уже делает это. Учитывая, что HotSpot разрабатывался в течение длительного периода времени с серьезными ресурсами и специально настроен для Java, я сомневаюсь, что вы могли бы получить что-нибудь даже такое же хорошее, как и из PyPy.

Сила PyPy заключается в том, что вы можете писать такие вещи, как сборщики мусора и JIT-компиляторы, как инфраструктуру, которая работает независимо от языков, которые вы интерпретируете . Тогда многие люди могут написать много интерпретаторов для большого количества языков и написать их достаточно простым для написания кода способом, но все они все еще получают высококачественные GC, JIT-компиляторы и т. Д. Без необходимости специально их реализовывать для каждый язык. PyPy вряд ли будет разумной альтернативой существующему проекту, который уже потратил огромные ресурсы на разработку высокооптимизированных компиляторов GC и JIT, специально настроенных для их языка.

...