Python、はじめました

非プログラマーかつ私文卒リーマンの Pythonデビュー全記録

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

f:id:pokita:20180426195830j:plain
今回はプログラミング用語の解説章。
最初はつまんないから読み飛ばしていたけど、プログラミングコード書くのに煮詰まってるいまは、
読み直したらむしろ楽しかった。大枠を理解できたら他の言語を勉強するときにも役に立つしオススメ。

まず言語は大きく分けて、
コンパイル言語インタプリタ言語に分かれる。コンパイル言語は実行時、一度コンパイルという作業を行い、コードを書いたテキストデータを一度バイナリファイルに変換した後、それをコンピューターのCPUにぶち込むというもの。

変換作業は面倒だし、作られるバイナリファイルもOSがLinuxWindowsか等で動作が異なるなど互換性がないのが弱点だけど、魅力的なのはその速さ。なにせ直接コンピューターのCPUに働きかけるんだからね。
Compiler_Interpreter
インタプリタ言語(スクリプト言語)は実行時、テキストファイルがインタプリタ(翻訳?)と呼ばれるプログラム実行ソフトウェアで読み込まれ実行されるというもの。

コンパイルする必要なく、テキストファイルのまま実行できるという利点はあるものの、テキスト→インタプリタバイトコード化→インタプリタ→実行というプロセスを実行するのがあくまでもインタプリタ仮想マシン)である、という点においてコンパイル言語に速さで劣る。


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


2章ではほかに、
PythonシステムであるCPython,Jthyon,IronPythonのテキストデータを書いた後の、その実行までの流れの違いが書いてあった。

.NET環境でPythonの実行とか、Javaとの共存とか…「だったら潔くPythonは捨てろや」と思うのはぼくだけなのだろうか。


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


PMVの機能強化の役割を担うPsyco
(実行時オブジェクトの型情報を集めて機械語に効率的にコンパイルする)フローズンバイナリ等の追加機能の話もあった。

なんでもブローズンバイナリ化すれば、配布の際に便利だとか。相手の端末にPythonが入ってなくとも、ブローズンバイナリ内にはバイトコードと共に実行環境たるPMVが内蔵しているんだもの。

 

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