Pythonに興味があっていろいろ調べていると、「Pythonはインタプリタ型の言語」と書いてあったのですが、インタプリタ型の言語って何のことですか?
インタプリタ型は変換方法のことだね! コンパイラ型とインタプリタ型の変換の仕方があって、Pythonはインタプリタ型の変換をするよ!
インタプリタ型とコンパイラ型があるんですね! ところで具体的に変換の仕方にどんな違いがあるんでしょうか?
よし!それじゃあ今回はPythonのようなインタプリタ型言語について解説していくよ!
- インタプリタ型の言語の特徴
- インタプリタ型とコンパイラ型の違い
- インタプリタ型であるPythonを学習するメリット・デメリット
インタプリタは変換方法の一つ
インタプリタとはコンピュータがプログラムを実行するため、プログラムがどのような指示を出しているかコンピュータが理解できるように変換するための変換方法の一つです。
コンピュータがプログラムを実行するまでの流れを確認してみましょう。
- 人間がプログラミング言語でプログラムを書く
- プログラミング言語をコンピュータが理解できる言語に変換
- コンピュータがプログラムを理解し実行
プログラミング言語はあくまで人間がコンピュータに指示を出すプログラムを組みやすくしたものであり、コンピュータはそのままでは理解できません。
そのため、プログラミング言語をコンピュータが理解しやすい言語(機械語)に変換する必要があります。この変換する方法がをインタプリタやコンパイラの2種類あります。
また、プログラミング言語で書かれているプログラムをソースコードといい、変換後のコンピュータが理解できるプログラムをバイナリコードといいます。
つまり、ソースコードからバイナリコードへの変換の方法の違いでインプリタ型、コンパイラ型と分かれます。
インタプリタ型言語とコンパイラ型言語の違い
ではインタプリタとコンパイラはどう違うのでしょうか。
簡単に言うと
- インタプリタ➡こまめに変換してちまちま実行する
- コンパイラ➡まとめて変換して一気に実行する
わかりやすくするために、野菜炒めを作るプログラムを例として、インタプリタ型の変換とコンパイラ型の変換を実行してみます。
インタプリタ型言語の場合
- A君がB君に野菜を切って!と指示をだす
- B君がわかった!といって野菜を切る
- A君がB君に肉を切って!と指示をだす
- B君がわかった!といって肉を切る
- A君がB君に野菜と肉を炒めて!と指示をだす
- B君がわかった!といって野菜と肉を炒める
- A君がB君にお皿に盛り付けて!と指示をだす
- B君がわかった!といってお皿に盛り付ける
コンパイラ型言語の場合
- A君がB君に野菜を切って!と指示をだす
- A君がB君に肉を切って!と指示をだす
- A君がB君に野菜と肉を炒めて!と指示をだす
- A君がB君にお皿に盛り付けて!と指示をだす
- A君がこれで野菜炒めができるよ!と指示を出す
- B君はわかった!といって野菜炒めを作り出す
なんとなくイメージできたでしょうか?
インタプリタは一つの指示に対してコンピュータが理解したらすぐに実行します。それに対してコンパイラは完成形を理解するまでは何もせず、完成形を理解したら一気に実行します。
インタプリタ型言語であるPythonのメリット・デメリット
Pythonはインタプリタ型のプログラミング言語ですので、プログラミング初心者がPythonを学習する上で以下のようなメリットがあります。
メリット1:すぐに実行してプログラムの動きを確認できる
インタプリタ型は先の野菜炒めのプログラムでわかるように、書いたプログラムをすぐに動作の確認をすることができる。
これによってプログラミング初心者は少しずつ動作に変化が現れるためプログラミングの楽しさを感じやすいと言えます。
メリット2:デバックしやすい(エラーを修正しやすい)
インタプリタ型のプログラミング言語でプログラムを書くことで、こまめに実行することができるため、その分エラーにもすぐに気づくことができます。
コンパイラ型の言語でプログラムを書いた場合、一度全て書き終えるまでは実行できないため、エラーに気づくのもその後になります。
つまり、インタプリタ型の言語でプログラムを書くことでエラーに気づきやすく、修正しやすいこともメリットの一つでしょう。
デメリット:コンパイラ型言語と比べて実行速度が遅い
インタプリタ型言語は一つ一つの指示を実行するため、実行速度が遅いです。
コンパイラ型の言語で書いたプログラムは、実行するまでには時間や手間がかかるものの、いざ実行するとなれば、無駄を省いているため実行速度が速いのです。
よってインタプリタ型の言語で書いたプログラムのデメリットは実行速度が遅いことです。
ただし、プログラミング初心者であればプログラムの実行速度よりも、完成までのプログラムの動作確認やエラーに気づき挫折をしにくくすることが重要だと言えます。
まとめ:Pythonは初学者向きの言語です!
今回はインタプリタ型言語について解説していきました! 理解できたかな?
インタプリタ型言語のPythonはプログラミング初心者向けってことだね!
- インタプリタとはプログラミングの変換方式の一つ!
- インタプリタ型言語のメリット
- 実行が楽ちん!
- エラーを見つけやすい!
- インタプリタ型言語のデメリット
- コンパイラ型言語と比べて実行速度が遅い