CPython、Cython、PyPy…。 さまざまな Python バリアントへの入門ガイド

12月 19, 2021
admin

もしあなたが Python プログラミングに夢中なら、おそらく CPython、Cython、Jython、PyPy… という言葉を聞いたことがあるはずです。

この記事では、これらの Python の亜種のいくつかについて少し紹介します。

Jython

Jythonは、バイトコードを取得するためにCの代わりにJavaを使用する代替実装です。 このバイトコードは、Kotlin、Scala、または Java 自体のような他の言語と同様に、Java 仮想マシンである JVM で実行することができます。

Cython

Cython は Python の C 拡張を書くためのコンパイラで、通常より効率的にすることを目的としています。 前の例と違って、これは別の実装ではありません: Python コードを実行するために CPython を使用します。 Python のすべての機能を含み、その上に追加の C 機能を追加しているので、Python のスーパーセットと考えることができます。 この例を見てみましょう (Cython の Wikipedia サイトより)。

def sum_up_to_n(n): a = 0 for i in range(n): a += i return acpdef sum_up_to_n(int n): cdef int a = 0, i for i in range(n): a += i return a

PyPy

PyPy では、CPython や Jython といった別の Python の実装を使用できます。 この実装の興味深い点は、実装が… PyPy の中核はジャストインタイム (JIT) コンパイラで、ソース コードの最も繰り返される部分を (CPython や Jython のようなバイトコードではなく) マシンのネイティブ コードにコンパイルするために使用されます。 ネイティブコードの実行はバイトコードの実行よりも効率的なので、コードのコンパイルに使われる時間を考慮しても、これは大きな速度向上につながります。

PyPy の Web サイトには、その利点 (と欠点) についての詳細な情報、およびパフォーマンスのヒントや最適でない場合のアドバイスがたくさんありますので、興味のある方はぜひご覧ください。

まとめ

この記事の後、あなたは CPython, Jython, Cython および PyPy の概念についてより精通しているはずです。 しかし、それらについてもっと学びたいという可能性もあるので、このトピックに深く入りたい場合に本当に役に立つリンクのリストを用意しました。 7606>

Useful links

  • Python.org – Alternative Python implementations
  • The definitive guide to Jython
  • Cython official website
  • PyPy official website
  • Just-in-time compilation
  • Article on Toptal about Python implementations

コメントを残す

メールアドレスが公開されることはありません。