🦔

プログラミング言語の分類

2023/05/18に公開

どのプログラミング言語も最終的には機械語[1]に変換して実行するというのは同じですが、その過程に違いがあります。
その変換して実行する方式にはインタプリタ方式とコンパイラ方式と中間コード方式の3種類あります。

インタプリタ方式


ソースコードに書かれた命令を、インタプリタというソフトウェアが1つずつ機械語に翻訳しながら実行します。
逐次翻訳していく形であるため、作成途中のプログラムもその箇所まで実行させることができるなど、「動作を確認しながら作っていく」といったことが容易に行えます。
ちなみにインタプリタ方式のプログラミング言語は比較的容易に記述や実行ができるのでスクリプト言語とも呼ばれることがありますが、スクリプト言語の定義はややこしいので深入りしません。

コンパイラ方式


インタプリタ方式との一番大きな違いは、実行する前にコンパイルという作業をする必要があるということです。コンパイルというのは、ソースコードの内容を最初に全て翻訳して、機械語のプログラムを作成することです。
ソースコード全体を解釈して機械語化するため、効率の良い翻訳結果を得る事が出来ますが、「作成途中で確認のために動かしてみる」といった手法は使えません。
インタプリタ方式より比較的実行速度が速いと言われています。

中間コード方式


インタプリタ方式とコンパイラ方式との中間のような位置づけです。
まずソースコードはコンパイルされます。しかしここで一挙に機械語に変換はせず、中間コード[2]に変換されファイルに保存されます。このファイルを仮想マシン[3]というインタプリタがインタプリタ方式のように実行します。
仮想マシンがOS間の違いを吸収するので、どの環境でも同一のプログラムを実行できます。

脚注
  1. CPUが理解できる言語。マシン語・ネイティブコードと呼ばれることもあります。 ↩︎

  2. Javaではバイトコードと呼ばれます。 ↩︎

  3. JavaではJVM(Java Virtual Machine)と呼ばれます。 ↩︎

Discussion