キャリテク!マガジン
- TOP
- キャリテク!マガジン
- Pythonとリファレンス実装
Pythonとリファレンス実装
こんにちは、吉政創成 菱沼です。
さて今回も「Pythonによるネットワーク自動化の教科書」という書籍を片手に学習していきます。 Pythonに興味がある!という超初心者の方、ぜひ一緒に学習していただければ幸いです。
さて前回はPythonのコーディング規約が書かれているPEP8について学習しました。今回はPythonの「実装」について学習したいと思います。
■Pythonの実装とは?
まずテキストからの引用です。
一般的に、Python といえばC 言語で実装されたもの(CPython)を指します。
Chapter1 Git入門編:1.1.4 Pythonの実装
しかし、Python にはC 言語以外で実装されたものが存在し、用途によってはそちらの実装を使う方が効果的な場合があります。
「実装」という言葉自体は、作ったものをハードなり、ソフトウェアなりとして使えるようにするという意味で理解しています。なので、「Pythonの実装」という文字を見たときに、Pythonで書いたものを使えるようにする方法のことかと思いきや、どうもこの文章を読むと違うお話…。
この引用文の続きに書かれている事柄自体は、Pythonチュートリアルのはじめにの項目に書かれているもののようでした。
では、「Pythonの実装」とはどういうことかと調べてみますと、そもそも「Python」というのは「Pythonというプログラミング言語仕様(文法やルール)」を指しており、「Python」を使えるようにするには「実装」をする必要があるようです。
この「実装」された形を「リファレンス実装(参考実装)」と言うそうで、いくつかの種類があるのだそうです。何があるかについては次の段落で確認します。
ところで、「リファレンス実装」とはなんぞやと思いますよね。実装なのに参考…?
リファレンス実装とは、「なんらかの機能を実現するハードウェアまたはソフトウェアであり、他者がそれを参考にして独自に実装することを助ける目的で作られたものを言う」を意味するそうです。
引用元:リファレンス実装|Weblio辞書
わかるようなわからないような…
誰かがPythonプログラミングをしたいと考えたときに、Pythonという言語仕様そのままだとやりにくいので、仕様書的にまとめて使えるようにしたものを配布することで、誰もが開発しやすいようにしたという事でしょうか。
探してみると、具体例込みで解説してくれているページがありましたので、より詳しく知りたい方はぜひそちらもご参照ください。
リファレンス実装|ニコニコ大百科
■Pythonのリファレンス実装の種類
さて、Pythonのリファレンス実装には何があるのでしょうか。テキストから引用します。
CPython
Chapter1 Git入門編:1.1.4 Pythonの実装
C 言語で書かれた通常のPython です。一般的に、Python と言えば、このCPython を指します。
Jython
Java で書かれたJVM 上で動作するPython です。
Java アプリケーション用のスクリプト言語として、また、Java クラスライブラリを使用したアプリケーションを作成するためにも利用されます。
Python for .NET
.NET アプリケーションで管理されているため、.NET ライブラリを参照することができます。
IronPython
Python を .NET Framework で使用するためのもう一つの実装です。
PyPy
PyPy は、RPython と呼ばれるPython にいくつかの制約を加えた言語で実装されたPython の実行環境です。
JIT コンパイラを搭載しているため、必要に応じて機械語にコンパイルして処理を高速に行うことができます。
実際にはこれ以外にもあるそうで、ここに挙げられているものは特に有名なものなよう。
ちなみに、多くの人がPythonソフトウェア財団(Python Software Foundation/PSF)からPythonをインストールしていると思いますが、ここで配布されているものがCPythonだそうです。
なので、一般的に(よく使われている)Pythonと言えばCPythonなんですね。
CPythonは利用者が多いこともあって、CPythonを使った解説ページやサンプルコードは豊富にありますが、それ以外のリファレンス実装のものは、用途を限定して詳しく調べればあるかもしれませんが、日本語で書かれたものはあまりなさそうな印象でした。
一応それぞれを簡単に調べて、それぞれの参考リンクを見つけましたので、載せておきます。他のリファレンス実装に興味がある方はご一読ください。
【初学者向け】Python処理系について
JavaによるPython実装「Jython」初学者向けまとめ
Python for .NETの動作を各環境でチェックする
Pythonから.NETを呼び出す方法とついでにその逆も
.NETで動くPython「IronPython」の初学者向けまとめ
高速動作するPython「PyPy」とは?概要と速度をチェック
さて、今回はちょっと短めで申し訳ないのですが、テキスト的にきりが良いので、今回はこちらで終了です。
お付き合いいただき、ありがとうございました。