インタプリタとは、プログラミング言語で書かれたプログラムを、実行の都度機械が理解できるように変換する実行方式の一つです。その都度その都度、プログラミング言語を変換、実行するので、バグが発生した段階ですぐ対応することができます。
対してコンパイラは、プログラミング言語で書かれたソースコードを、一度にすべて機械語に変換するという方式。コンパイラを使った機械語の変換は、「コンパイル」なんて呼ばれることがあります。
プログラミング言語はあくまで、人間がわかりやすいように解釈した「人間の言葉」です。この言葉を、コンピュータが理解しやすいように変換しなければなりません。インタプリタとコンパイラは、それぞれ機械語への変換を行うための「過程」を意味します。
※本ページにはPRが含まれます。
目次
インタプリタのメリット
ソースコードをその都度変換して実行する、インタプリタ方式言語のメリットから見ていきましょう。
初心者が手をツケやすい言語
最近のプログラミング言語は、このインタプリタ方式の言語が主流です。PerlやPHPなど、プログラミング言語に馴染みの無い方でも、比較的習得が容易い言語が揃っています。
バグを見つけやすい
実行と同時に変換するのが特徴のインタプリタ言語。つまり、バグが起きた時点で、原因究明がとても容易です。ソースコードを一行単位で、修正、デバッグが可能になるからです。
長文のソースコードなら、この「細かい修正が可能」なのは、大きなメリットですよね。
インタプリタのデメリット
インタプリタのデメリットは、何といっても「プログラムの実行が遅い」ということです。その最大の原因は、一つ目の命令ごとに実行するという、その回りくどさです。
また、ソースコードを配布する際に、導入するマシンに適当なインタプリタが求められるということ。さらに、配布されたソースコードを、人間が簡単に読むことができるという問題でしょうか。
コンパイラのメリット
対して、C言語など、ソースコードを「一括変換」するコンパイラ言語のメリットも見ていきましょう。
コンパイラのメリットは、やはりインタプリタ方式の言語と逆に「実行が早い」ということがあげられます。プログラム、ソフトウェアの処理速度は早い方が優秀だと言われています。変換自体には時間がかかるものの、一度変換してしまえば、プログラムの実行自体には時間がかかりません。
コンパイラのデメリット
コンパイラのメリットは、デバッグに時間がかかるといおうもの。すべて一括で、ソースコードをバグ取りしなくてはならないので、どこでバグが発生したのか、その原因究明に時間がかかります。
インタプリタ言語の例
インタプリタ型の言語で有名なのは、PHP、またはPerlでしょう。
PHPは、主にWeb分野のプログラミングに最適な形で設計されており、最近ますます需要が高まっている言語です。
Perlは、過去のプログラミング言語のアップデート版。C言語やシェルスクリプトなど、今までのプログラミング言語のいいとこ取りをした言語です。
PerlもWebの分野で活躍しており、Webアプリケーション開発で広く用いられています。
コンパイラ言語の例
かの有名なプログラミング言語、C言語、またC++は代表的なコンパイラ言語です。
他にもCOBOL、FORTRANもコンパイラ言語。歴史の長い言語、そして構造が難しい言語であるというのが、コンパイラ言語の特徴ですね。
Javaはインタプリタ言語でありコンパイラ言語でもある
Java言語は、「インタプリタ」と「コンパイラ」の特徴を併せ持つプログラミング言語です。
Javaで書かれたソースコードは、まず「バイトコード」に変換されます。そしてそのバイトコードは、仮想マシン上で変換され、コンピュータへの指令を下します。
これにより、Java言語は、どのプラットフォーム上でも実行可能になりました。
インタプリタ言語の悪いところも、コンパイラ方式の、「他プラットフォームで再びコンパイルしなくてはならない」という問題も解決したプログラミング言語です。こういった要因もあり、Javaは世界中の開発者に愛されたプログラミング言語です。
まとめ
インタプリタ方式とコンパイラ方式、それぞれの違いがわかっていただけたでしょうか。
最近はマシン側の性能も上がったことなどで、「インタプリタ方式」が比較的一般化しています。しかし、プログラムに携わる身としては、インタプリタもコンパイラも、どちらへの理解も深いに越したことはありません。