コンパイラ型言語とインタープリタ型言語の違い分かりますか?

プログラミング言語

コンピュータはプログラム言語をそのまま理解できる訳ではなく、プログラムを実行させるためにはコンピュータが理解できる機械語(バイナリコード)に変換する必要があります。

機械語に変換することをコンパイルと呼びます。

プログラミング言語には機械語に変換するタイミングによって、コンパイラ方式とインタープリンタ方式の2つに分類する事ができます。

この2つに分類された両者をそれぞれ、コンパイラ型言語とインタープリンタ型言語と区分けして呼んでおります。

コンパイラ型言語

ソースコードをいったん機械語(01010の羅列のようなもの)に変換して、その機械語になったプログラムを実行する方式です。

ファイルは、それ自体が直ちに実行可能なわけではなく、リンカなどで幾つかのファイルを特定の形式に連結させて、実行可能ファイルやライブラリに生成されます。

※リンカとは、機械語のプログラムの断片を適切に結合して、実行可能なプログラムとして生成するためのプログラムです。

代表的なコンパイラ型言語としてはC、C++、C#、Java等があります。

但し、C#とJavaは、ソースコードを機械語に変換するのではなく、中間コードと言われるコードに変換します。

中間コードは各マシンにインストールされた仮想マシン上で実行されますが、中間コードを利用するメリットはOSに依存しないで実行できることです。

インタープリタ型言語

インタープリタ型言語は、ソースコードを機械語に少しずつ変換しながらプログラムを実行する言語でソースコードを先頭から順に処理して実行していくタイプの言語です。

作成したソースコードを直ぐに実行できるという点がこの方式のメリットになります。

但し、ソースコードを機械語に変換しながら実行するため、コンパイル型言語に比べると処理速度は若干、遅くなります。

しかし、コード運用に柔軟性があり、多くのプログラム開発に活用されています。

代表的なインタープリンタ型言語としては、Python、Ruby、JavaScript、PHP等があります。

参考:スクリプト言語

インタープリンタ型言語とスプリット言語を混同してませんか?

スクリプト型言語とはコード内容が理解しやすいプログラミング言語の総称であり、比較的容易に記述や実行ができるものを指します。

ただし、厳密な定義はなく、本来はソースコードのコーディングを簡素化したものを指し、特定のプログラミング言語を指すのではありません。

スクリプト言語とインタープリタ型言語を混同している記事を散見しますが、スクリプト言語とインタープリタ型言語は、全く別の観点から定義づけされたものです。

この両者が混同される要因は、スクリプト言語がほぼインタープリタ型言語だからだと思われます。

コメント