質問

PyPy の翻訳を理解するのに苦労しています。説明を読むだけでは、まったく革新的なもののように見えますが、現実世界のコードを LLVM などに実際に変換する方法についての適切なドキュメントを見つけるのは困難です。そんなものは存在するのでしょうか?PyPy の公式ドキュメントは機能をざっとざっと紹介するだけで、私が自分で試せるものは何も提供されていません。

役に立ちましたか?

解決

このドキュメントはかなり詳しく説明されているようです (完全な説明は stackoverflow の回答の範囲外だと思います)。

ある言語から別の言語に翻訳するという一般的なアイデアは、特に革新的なものではありませんが、「現実世界」のアプリケーションで人気があり、適用可能になり始めたのはつい最近のことです。 GWT これは Java で行われ (JavaScript を生成します)、Haskell を他のさまざまな言語に翻訳するためのライブラリもあります ( YHC)

他のヒント

実際の例が必要な場合は、 PyPy のはじめ方 ドキュメントには「トランスレータを試す」というタイトルのセクションがあります。

PyPy トランスレータは一般に、より一般的な使用を目的としていません。それを使用して、独自のPythonインタープリター(JITおよびGCSを含む、どちらもRpythonで書かれているPythonの制限付きサブセットを含む)を翻訳します。アイデアは、優れたJITとGCを使用すると、Pypyの翻訳ツールチェーンを知らないことも使用しなくても(さらに重要なことには、Rpythonに制限することなく)スピードアップできるということです。

乾杯、フィジャル

Python 固有の翻訳を探していますか、それとも一般的な「コードをバイトコードにコンパイルする方法」だけをお探しですか?後者の場合は、チェックしてください LLVM チュートリアル. 。特に興味深いのは、独自の言語用のコンパイラを作成する方法を教える第 2 章です。

説明を読むだけでもかなり革新的なものに見えますが、

私の知る限り、PyPy は、特別に設計された最初のシステムであるという意味で斬新です。 実装する 言語。パーサー ジェネレーターなどのフロント エンドの多くを支援するツールや、コード生成などのバック エンドを支援するツールは他にもありますが、この 2 つを接続するためのツールはあまりありませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top