以下は,プログラミング言語Pythonの書籍として非常に有名な,
『初めてのPython』
を読みながら,Pythonを勉強した時の個人的なメモです.
関連記事:
・独学Python 1: 名前の由来, メリット,デメリット,ユーザ - MY ENIGMA
・独学Python 2: できること, 技術的な長所, 多言語との連携, 勉強しやすい, 使い易い - MY ENIGMA
Python インタープリタ
Pythonのプログラムはどのような形であれ,
Pythonインタープリタによって実行される.
(Mac OS Xの場合,出荷時にインストールされていた.
ターミナルで’python’とタイプするとpythonが起動する.)
プログラムの実行
print 'hello world'
とタイプするとhello worldと出力され,
print 2**100
とタイプすると2の100乗1267650600228229401496703205376がオーバーフローせずに表示される.
拡張子
このような内容のPythonプログラムファイルの拡張子は
慣例的に.pyにするが,別にこれでなくても大丈夫らしい.
Pythonプログラム作成
vimで以下の内容が書かれた19.pyというプログラムを作成.
print 'hello me!' print 3**4
同じディレクトリで
python 19.py
とタイプすると,
hello me!
81
と表示された.
その時インタープリタはなにをしているのか?
1. ソースコードをバイトコードという形式に変換する.
バイトコードとはソースコードと機械語との中間に位置する形式で,
プラットフォームに依存しなくなる.
実行のパフォーマンスを向上させるためにこのような変換をする.
書き込み権限があれば,
バイトコードは.pycという拡張子をもったファイルとして保存される.
一度バイトコードが作成されると,
ソースコードに修正が加えられていない場合,
コンパイルが行われず,起動が早くなる.
これはインタープリタがファイルのタイムスタンプを見ているからである.
また,書き込み権限がない場合,このファイルは破棄される.
大規模なシステムを作る時には,このプロセスは気を付けた方がよい.
また他人にプログラムを提供する時には,バイトコードで渡されることが多い.
2. バイトコードはPythonの仮想マシン(Python Virtual Machine=PVM)に送られる.
PVMはプログラムの命令をひとつずつ行うループ処理をする.(ランタイムエンジン)