В настоящее время pypy переводит Rpython на родной код с помощью подключаемых JIT и GC. В настоящее время он имеет интерфейс Python. Мне интересно, можно ли написать интерфейс Java Bytecode для pypy, создавая альтернативный классный JVM (написанный на (R) Python)Возможно ли скомпилировать Java Bytecode в Native Code с помощью pypy?
ответ
Интерпретатор RPython для байт-кода Java не будет компилятором для байт-кода Java на собственный код , Код RPython скомпилирован в собственный код, а не код, который интерпретирует интерпретатор.
Во время выполнения (некоторые из) интерпретируемый код будет скомпилирован JIT на собственный код, но это совершенно по-другому, и HotSpot VM уже делает это. Учитывая, что HotSpot был разработан в течение длительного периода времени с серьезными ресурсами позади него и специально настроен для Java, я сомневаюсь, что вы можете получить что-нибудь даже приближающееся так же хорошо, как и от PyPy.
Сила PyPy - это идея, что вы можете писать такие вещи, как сборщики мусора и компиляторы JIT в качестве рамки, которая работает независимо от языков, которые вы интерпретируете. Затем многие люди могут писать много интерпретаторов для большого количества языков и записывать их на довольно высоком уровне с простым в коде, но они все еще получают высококачественные GC, JIT-компиляторы и т. Д., Не требуя для их реализации каждый язык. PyPy вряд ли станет разумной альтернативой существующему проекту, который уже потопил огромное количество ресурсов для разработки высоко оптимизированных GC и JIT-компиляторов, которые специально настроены для их языка.
Возможно, стоит отметить, что JIT Pypy специально настроен на ** динамические ** языки. Скорее всего, он не будет работать и для статических. – fijal