python3の日記

Python3を図書とともに勉強していくブログ

第四回【初めてのPython(第2章)】

Compiler_Interpreter

今回はプログラミング用語の解説章。
最初はつまんないから読み飛ばしていたけど、
プログラミングコード書くのに煮詰まってるいまは、

読み直したらむしろ楽しかった。
大枠を理解できたら他の言語を勉強するときにも

役に立つしオススメ。

まず言語は大きく分けて、

コンパイル言語インタプリタ言語に分かれる。

コンパイル言語は実行時、一度コンパイルという作業を行い、
コードを書いたテキストデータを一度バイナリファイルに変換した後、
それをコンピューターのCPUにぶち込むというもの。
変換作業は面倒だし、作られるバイナリファイルも

OSがLinuxWindowsか等で動作が異なるなど

互換性がないのが弱点だけど、魅力的なのはその速さ。
なにせ直接コンピューターのCPUに働きかけるんだからね。


インタプリタ言語(スクリプト言語)は実行時、
テキストファイルがインタプリタ(翻訳?)と呼ばれる
プログラム実行ソフトウェアで読み込まれ実行されるというもの。
コンパイルする必要なく、

テキストファイルのまま実行できるという利点はあるものの、
テキスト→インタプリタバイトコード化→インタプリタ→実行
というプロセスを実行するのが

あくまでもインタプリタ仮想マシン)である、

という点においてコンパイル言語に速さで劣る。


という違いらしい。なるほど、実行環境の違いであって、
文法上の違いではないのか。


2章ではほかに、

PythonシステムであるCPython,Jthyon,IronPython
テキストデータを書いた後の、その実行までの流れの違いが

書いてあった。

.NET環境でPythonの実行とか、Javaとの共存とか…

「だったら潔くPythonは捨てろや」

と思うのはぼくだけなのだろうか。


バイトコードコンパイルした後、

バイトコード仮想マシンにぶち込むまでの流れが上の話。


PMVの機能強化の役割を担うPsyco

(実行時オブジェクトの型情報を集めて機械語に効率的にコンパイルする)

フローズンバイナリ等の追加機能の話もあった。

なんでもブローズンバイナリ化すれば、配布の際に便利だとか。

相手の端末にPythonが入ってなくとも、

ブローズンバイナリ内には

バイトコードと共に実行環境たるPMVが内蔵しているんだもの。

 

……Pythonのいいところってなんでしたっけ?