ホームページ  >  記事  >  バックエンド開発  >  Python はなぜクロスプラットフォームなのでしょうか?

Python はなぜクロスプラットフォームなのでしょうか?

(*-*)浩
(*-*)浩オリジナル
2019-05-17 13:39:0814939ブラウズ

Python がクロスプラットフォームである理由: ソース コードはクロスプラットフォームです。Python 命令は最終的に C 言語命令セットに変換され、その後 C 言語命令セットはマシン コードにコンパイルされ、ついに走る。クロスプラットフォームには制限があります: 1. Windows 用に特別なことはできません; 2. エンコード方法は互換性がある必要があります。

Python はなぜクロスプラットフォームなのでしょうか?

#クロスプラットフォームの概念は、ソフトウェア開発における重要な概念です。つまり、オペレーティング システムやハードウェア環境に依存しません。 あるオペレーティング システムで開発されたアプリケーションは、別のオペレーティング システムでも実行できます。相対的に言えば、あるコンピュータ言語がコードを変更せずに高度なクロスプラットフォーム性を実現できる場合、言語はより抽象化され、ハードウェア制御は低くなり、高度に抽象化されたモデル システムの開発にのみ適します。たとえば、Java、Delphi、Yi Language、Python はすべてクロスプラットフォームです。これらは、さまざまなシステムの下で開発、実行、保守できるようになります。

ほとんどのコンピューター言語は、絶対的な意味でクロスプラットフォームです。つまり、人間が判読できる高レベルの方法で CPU に命令を発行するため、いかなる操作システムにも依存する必要がありません。ただし、システムのコンポーネント ツールボックスを使用して新しいグラフィカル ユーザー インターフェイス (GUI) を作成する場合は、開発者の特定のシステムで API 関数またはライブラリ クラスを使用できます。 C はクロスプラットフォームですが、Windows で Win32 API を使用する C プログラムは通常、Unix マシンではコンパイルできません。コンパイラが異なれば、言語仕様の解釈も異なります。この場合、さまざまなシステム用にプログラムを構築する前に、プログラムを検討する必要があります。

Java などの一部の言語は、さまざまなプラットフォームで実行する必要があることを最初から認識しており、そのプラットフォームのローカル言語環境でクロスプラットフォームが実装されています。たとえば、Swing ライブラリが多くのプラットフォームに実装されているため、Java はクロスプラットフォームで使用できます。同様に、それぞれのプラットフォームにファイル アクセス用のライブラリがあるため、クロスプラットフォームのファイル アクセスが可能です。同様に、さまざまなクロスプラットフォームの問題を解決するには、独自のローカル ライブラリが必要です。 wxWidgets フレームワークは、クロスプラットフォームのさまざまな問題に応じてさまざまなソリューションを提供するクロスプラットフォーム ライブラリであり、同様のライブラリが多数存在し、さまざまな言語でのクロスプラットフォーム開発に応じて対応するライブラリを使用できます。

各オペレーティング システムおよび CPU にそれぞれコンパイルされたバージョンを提供およびテストする実現可能性は非常に低いですが、オープン ソース ソフトウェアではユーザーがオブジェクト コードを自分でコンパイルできるため、国境を越えたプラットフォームの側面が優れています。同様に、これらのインタープリタ型言語、つまり仮想マシンを必要とする言語は、ユーザーが自分でコンパイルする必要があるため、クロスプラットフォーム要件により適合します。 Sun の Java 仮想マシン Hotspot は、すべてのプラットフォームではなく、いくつかのプラットフォーム用にコンパイルされたバイナリ ファイルのみを提供します。たとえば、Sun は GNU/Linux の i386 プラットフォームのみをサポートしていますが、PowerPC または SPARC コンピュータで Linux を実行する場合は、ローカル マシン コードを自分でコンパイルするか、サードパーティ ソフトウェアを使用して Java プログラムを実行する必要があります。

多くの API (アプリケーション プログラミング インターフェイス) はプラットフォームに依存します。 OpenGL は、特定のオペレーティング システム、CPU アーキテクチャ、グラフィック デバイスのブランドに依存しないため、クロスプラットフォームであると考えることができます。プラットフォーム固有の API は、WINE ライブラリなどの他のシステム上の互換性レイヤーとして作成できるため、Windows プログラムを UNIX システム上で実行できます。

さらに、多くのプログラミング言語にはクロスプラットフォームの拡張機能とミドルウェアがあるため、プログラマーは同じソース コードにわずかな変更をいくつか加えるだけで、異なるプラットフォームでコンパイル/実行できます (Qt や Qt など)。 wxウィジェット。

Python ではさまざまなプラットフォームで何ができるのでしょうか?

Python は最終的にこれらの独自の命令を C 言語命令セットに変換し、その C 言語命令セットをマシンコードにコンパイルして実行するため、Python のパフォーマンスが非常に優れているのはこのためです。 (もちろん、高速化する方法はたくさんあります)。

もちろん制限があります:

1. Windows 用に特別なことはできません;

2. エンコード方法は互換性がある必要があります。

AIX、HPUX、Solaris、Linux、Windows などの一般的な主流プラットフォームをサポートします。Windows に加えて、一般的な Unix および Linux プラットフォームにはネイティブ Python がありますが、通常はバージョンが低くなります。クロスプラットフォームに関しては、他のクロスプラットフォーム言語と同様に、一部の個々のモジュールは単一のプラットフォームに固有ですが、全体的なクロスプラットフォームのパフォーマンスは依然として非常に優れていることに注意してください。複数のコードセットを記述する必要はありません。複数のプラットフォームに適応するため。

しかし、これはまったく制限がないという意味ではありません。第一に、同じバージョンの中間ファイル .py、.pyc、および .pyo はクロスプラットフォームです。第二に、PC とモバイル端末 (たとえば、携帯電話とパッドは、クロスプラットフォームにすることはできません。プラットフォーム (理由については次の項目を参照)、最後に、Intel と ARM、64 ビットと 32 ビットなどのプロセッサ アーキテクチャをまたぐことはできません。

以上がPython はなぜクロスプラットフォームなのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。