2008-08-26 3 views
10

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

ответ

5

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

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

+1

Ссылка мертва (PyPy перемещен). Это тот же документ? http://pypy.readthedocs.org/en/latest/translation.html – leewz 2014-08-05 11:06:10

2

Вы ищете специальный перевод на Python или просто общий «как вы компилируете код в байт-код»? Если это ваш случай, проверьте the LLVM tutorial. Я особенно нахожу главу 2, в которой вам предлагается написать компилятор для вашего собственного языка, интересный.

3

Если вы хотите, чтобы некоторые вручную на примерах PyPy's Getting Started документе есть раздел под названием «опробовать переводчик".

3

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

Приветствия, fijal

1

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

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

Смежные вопросы