コンパイラ・インタープリタ・アセンブラの主な違いは、コンパイラは高級言語プログラム全体を一度に機械語に変換するのに対し、インタープリタは高級言語プログラムを一行ずつ機械語に変換し、アセンブラはアセンブリ言語プログラムを機械語に変換することである。
コンピュータプログラムは、コンピュータがある作業を行うための命令の集合体です。
ほとんどのプログラムは高級言語かアセンブリ言語で書かれています。
これらのプログラムは、プログラマーが読んで理解するのは簡単ですが、コンピュータには理解できません。
コンピュータが理解できるのは機械語だけです。
機械語は1と0の2進数で構成されています。
従って、コンピュータが命令を理解するためには、高レベルまたはアセンブリプログラムを機械語に変換する必要があります。
コンパイラ、インタープリタ、アセンブラは、高レベルまたはアセンブリ言語ベースのプログラムを機械語に変換する翻訳機です。
コンパイラとは
コンパイラは、高レベルのプログラムを機械的に理解できる機械語コードに変換する言語翻訳機です。
この過程で、コンパイラはプログラム全体を一度に機械語に変換する。
もし、構文的、意味的なエラーがあれば、コンパイラはそれを表示する。
プログラム全体をチェックし、すべてのエラーを表示します。
このエラーを修正しなければ、プログラムを実行することはできない。
図1:コンパイラ
CやC++などのプログラミング言語では、言語変換のためにコンパイラを使用する。
これらの言語では実行時間が短くなる。
そのため、高速な言語とされている。
インタープリターとは
インタープリタとは、高レベルのプログラムを機械語に変換する言語翻訳機のことです。
コンパイラと異なり、1行ずつソースコードを機械語に変換する。
一行ずつチェックするため、スキャンにかかる時間は短くなります。
しかし、全体の実行時間は長くなる。
インタープリタは一度に一つのエラーを表示する。
プログラマーはそのエラーを修正して次の行を解釈しなければならない。
Python、Ruby、PHP、Perlなどのプログラミング言語がインタプリタ型言語の例です。
アセンブラとは
高級言語と機械語の他に、アセンブリ言語と呼ばれる言語があります。
アセンブリ言語は、高級言語と機械語の中間に位置する言語です。
高級言語よりも機械語に近い。
低レベル言語とも呼ばれる。
この言語は、高級プログラミング言語のようにプログラマーが簡単に読んだり理解したりできるものではありません。
アセンブラは、アセンブリ言語のプログラムを機械語に変換するトランスレータとして機能する。
コンパイラ・インタプリタとアセンブラの違い
定義
コンパイラは、高級言語で書かれたプログラムを機械語に変換するソフトウエアです。
インタープリタは高級言語から機械語に変換するソフトウェアで、アセンブラはアセンブリ言語で書かれたプログラムを機械語に変換するソフトウェアです。
機能性
コンパイラは、高級言語プログラム全体を一度に機械語に変換する。
インタープリタは、高級言語プログラムを1行ずつ機械語に変換する。
これに対して、アセンブラは、アセンブリ言語のプログラムを機械語に変換する。
言語
C、C++などの言語は、コンパイラを使ってコードを変換します。
Ruby、Perl、Python、PHPなどの言語はインタプリタ、アセンブリ言語はアセンブラを使用します。
結論
コンパイラ、インタプリタ、アセンブラは言語変換器です。
コンパイラとインタープリタとアセンブラの違いは、コンパイラは高級言語プログラムを一度に機械語に変換するのに対し、インタープリタは高級言語プログラムを一行ずつ機械語に変換し、アセンブラはアセンブリ言語プログラムを機械語に変換する点です。