コンピュータはプログラム言語をそのまま理解できる訳ではなくプログラムを実行させるためにはコンピュータが理解できる機械語(バイナリコード)に変換する必要があります。
機械語に変換することをコンパイルと呼びます。
プログラミング言語には機械語に変換するタイミングによって、コンパイラ方式とインタプリンタ方式の2つに分類する事ができます。
この2つに分類された両者をそれぞれ、コンパイラ型言語とインタプリンタ型言語と区分けして呼んでおります。
コンパイラ型言語
ソースコードをいったん機械語(01010の羅列のようなもの)に変換して、その機械語になったプログラムを実行する方式です。
ファイルはそれ自体が直ちに実行可能なわけではなく、リンカなどで幾つかのファイルを特定の形式に連結させて、実行可能ファイルやライブラリに生成されます。
※リンカとは、機械語のプログラムの断片を適切に結合して、実行可能なプログラムとして生成するためのプログラムです。
代表的なコンパイラ型言語としてはC、C++、C#、Java などがあります。
但し、C#とJavaは、ソースコードを機械語に変換するのではなく、中間コードと言われるコードに変換します。
中間コードは各マシンにインストールされた仮想マシン上で実行されますが、中間コードを利用するメリットはOSに依存しないで実行できることです。
インタプリタ型言語
インタープリタ型言語は、ソースコードを機械語に少しずつ変換しながらプログラムを実行する言語でソースコードを先頭から順に処理して実行していくタイプの言語です。
作成したソースコードを直ぐに実行できるという点がこの方式のメリットになります。
但し、ソースコードを機械語に変換しながら実行するため、コンパイル型言語に比べると処理速度は若干、遅くなります。
しかし、コード運用に柔軟性があり多くのプログラム開発に活用されています。
代表的なインタプリンタ型言語としては、PHP、Ruby、JavaScript、Python などがあります。
参考:スクリプト言語
インタプリンタ型言語とスプリット言語を混同してませんか?
スクリプト型言語とはコード内容が理解しやすいプログラミング言語の総称であり、比較的容易に記述や実行ができるものを指します。
ただし、厳密な定義はなく、本来はソースコードのコーディングを簡素化したものを指し、特定のプログラミング言語を指すのではありません。
スクリプト言語とインタプリタ型言語を混同している記事を散見しますが、スクリプト言語とインタープリタ型言語は、全く別の観点から定義づけされたものです。
この両者が混同される要因は、スクリプト言語がほぼインタプリタ型言語だからだと思われます。
まとめ
いかがでしたか。
繰り返しになりますが、インタプリタとコンパイラの違いはコードの実行前に機械語に翻訳するタイミングによるコードの処理方式の違いにあります。
これからプログラミングを学習を始めたい方は、インタプリタ型言語をおすすめします。
代表的なインタプリンタ型言語としては、PHP、Ruby、JavaScript、Python などがあります。
学習の難易度、業界での人気も考え、Web系を目指すのであればPHPやRubyを学び、機械学習やAIを目指すのであればPythonを学習するのがおすすめです。
この記事が、皆様のお役に立てれば幸いです。
コメント