Python をマシンコードにコンパイルすることは可能ですか? [closed] 質問する

Python をマシンコードにコンパイルすることは可能ですか? [closed] 質問する

Python を (おそらく中間 C 表現を介して) マシンコードにコンパイルすることはどの程度実現可能でしょうか?

おそらく、Python ランタイム ライブラリにリンクする必要があり、Python 標準ライブラリ自体が Python である部分もコンパイル (およびリンク) する必要があります。

また、式の動的な評価を行う場合は Python インタープリターをバンドルする必要がありますが、おそらくこれを許可しない Python のサブセットでも役に立つでしょう。

速度やメモリ使用量に何らかの利点がありますか? おそらく、Python インタープリターの起動時間は削減されるでしょう (ただし、共有ライブラリは起動時にロードする必要があります)。

ベストアンサー1

@Greg Hewgill が言うように、これが常に可能とは限らないのには十分な理由があります。ただし、特定の種類のコード (非常にアルゴリズム的なコードなど) は、「実際の」マシン コードに変換できます。

いくつかのオプションがあります:

  • 使用サイコは、マシン コードを動的に出力します。ただし、変換するメソッド/関数を慎重に選択する必要があります。
  • 使用シトンはPythonです。のようにPython C拡張機能にコンパイルされる言語
  • 使用ピピ、RPythonからの翻訳機能(制限されたサブセットPython の最も「動的な」機能の一部をサポートしていない Python のソースコードを C または LLVM に移行します。
    • PyPyはまだ実験段階である
    • すべての拡張機能が提供されるわけではありません

その後、既存のパッケージ (freeze、Py2exe、PyInstaller) のいずれかを使用して、すべてを 1 つのバイナリにまとめることができます。

全体として、あなたの質問に対する一般的な答えはありません。パフォーマンスが重要な Python コードがある場合は、できるだけ多くの組み込み機能を使用するようにしてください (または、「Python コードを高速化するにはどうすればよいですか」という質問をしてください)。それでも問題が解決しない場合は、コードを特定して C (または Cython) に移植し、拡張機能を使用してください。

おすすめ記事