1. ホーム
  2. python

[解決済み] PythonとCpythonの比較

2022-03-17 07:19:54

質問

PythonとCPythonについて、この騒ぎは何なんだ? (Jython,IronPython)です。 意味がわからない。

python.org がCPythonであることに言及しています。

<ブロッククオート

Python の "traditional" 実装 (CPythonの愛称)

またまたStack Overflowの質問 が言及しています。

CPythonは、C言語で書かれたPythonのデフォルトのバイトコードインタプリタです。

正直、どちらの説明も実質的な意味がわからないのですが、私が思ったのは、そのことです。 CPythonを使用する場合、Pythonのサンプルコードを実行すると、C言語にコンパイルされ、C言語のコードのように実行されるということでしょうか?

CPythonとは一体何なのか、Pythonと比較した場合どう違うのか、PythonよりもCPythonを使うべきなのか、もしそうならその利点は何なのか?

どのように解決するのですか?

で、CPythonって何?

CPythonは オリジナル Pythonの実装です。Python.orgからダウンロードした実装です。他の後発のPython実装と区別するため、また、言語エンジンの実装をPythonの プログラミング言語 そのものです。

言語であるPythonと、言語であるPythonを分離する必要があります。 実行 Pythonのコードです。

CPython 起こる はC言語で実装されていますが、これは単なる実装の詳細に過ぎません。CPython は Python コードを (透過的に) バイトコードにコンパイルし、評価ループの中でそのバイトコードを解釈します。

また、CPythonは新しい機能を最初に実装します。Pythonという言語の開発はCPythonをベースとし、他の実装がそれに続きます。

Jythonなどはどうですか?

Jython , IronPython および PyPy は、現在の Python プログラミング言語の実装で、それぞれ Java、C#、RPython (Python のサブセット) で実装されています。JythonはPythonのコードをコンパイルして ジャワ バイトコードで、PythonコードはJVM上で実行することができます。IronPythonはPythonをJVM上で動作させます。 マイクロソフトCLR . そして、PyPyはPythonのサブセットで実装されているので、CPythonよりも高速にPythonコードを実行することができます。

実際にC言語にコンパイルしてみる

そこでCPythonは ではなく Pythonのコードを自分でCに変換してくれます。その代わり、インタプリタのループを実行します。そこで というプロジェクトがあります。 する Python 風のコードを C に変換するもので、その名前は サイソン . Cython は Python 言語にいくつかの拡張機能を追加し、あなたのコードを C 拡張にコンパイルすることができます。 への CPythonインタプリタ