Где я могу узнать больше о функции перевода PyPy?

StackOverflow https://stackoverflow.com/questions/27567

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

Если вам нужны несколько практических примеров, Пайпи только начинает в документе есть раздел, озаглавленный "Тестирование переводчика".

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

Твое здоровье, фиджал

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top