Где я могу узнать больше о функции перевода PyPy? - PullRequest
9 голосов
/ 26 августа 2008

Мне трудно было понять перевод PyPy. Это выглядит как нечто совершенно революционное, если просто читать описание, однако мне сложно найти хорошую документацию по переводу реального кода в нечто вроде LLVM. Существует ли такая вещь? Официальная документация по PyPy содержит только функциональность, а не предоставляет все, что я могу попробовать сам.

Ответы [ 5 ]

5 голосов
/ 04 сентября 2008

Этот документ, кажется, углубляется в детали (и я думаю, что полное описание выходит за рамки ответа на стекопоток):

Общая идея перевода с одного языка на другой не особенно революционна, но лишь недавно она приобрела популярность / применимость в приложениях "реального мира". GWT делает это с Java (генерируя Javascript), и есть библиотека для перевода Haskell на другие языки (называемые YHC )

3 голосов
/ 25 июня 2009

PyPy переводчик, как правило, не предназначен для более публичного использования. Мы используем его для перевода наш собственный интерпретатор Python (включая JIT и GC, оба написанные на RPython, это ограничено подмножество Python). Идея в том, что с хорошим JIT и GC вы сможете ускорить даже без знания или использования цепочки инструментов перевода PyPy (и что более важно, без ограничивая себя RPython).

Ура, fijal

3 голосов
/ 19 сентября 2008

Если вам нужны практические примеры, Документ PyPy «Приступая к работе» содержит раздел под названием «Испытание переводчика».

2 голосов
/ 26 августа 2008

Вы ищете специфичный для Python перевод или просто общее "как вы компилируете некоторый код в байт-код"? Если последнее является вашим случаем, проверьте учебник по LLVM . Особенно мне интересна вторая глава, которая учит вас писать компилятор для вашего собственного языка.

1 голос
/ 25 июня 2009

Это выглядит как нечто совершенно революционное, если просто прочитать описание,

Насколько я знаю, PyPy является новинкой в ​​том смысле, что это первая система, специально разработанная для реализации языков. Существуют и другие инструменты, которые могут помочь с большей частью самого внешнего интерфейса, например, генераторы синтаксического анализатора, или для самого внутреннего конца, такого как генерация кода, но их не так много.

...