コンパイラ(compiler)とは、プログラミング言語のソースコードから機械語を生成するソフトウェアである。なお、アセンブリ言語から機械語を生成するソフトウェアはアセンブラと呼ばれる。
曖昧さ回避
概要
コンピュータが出来たばかりの頃のプログラマは機械語でプログラミングを行うしかなく、その 1 と 0 を扱う苦労は多大なものであった事は容易に想像できる。アセンブリ言語が開発されてからは多少事情は改善されたものの、少し複雑な処理を行うプログラムを書こうとすればたちまち解読不能なコードが出来上がる。
そこで発明されたのが高級言語とそのコンパイラである。高級言語から機械語への翻訳をコンパイラが行う事で、プログラマはハードウェア構成や機械語を知る事無く高級言語によってプログラミングを行う事が出来るようになった。抽象度の高い高級言語のコードは、同じ処理を機械語で記述した場合に比べて一般的に可読性の高いものとなる。
最近のコンパイラでは、ハードウェア構成やデータの利用状況などを考慮した最適化を行う事によって、普通のプログラマが機械語で直接書くよりも効率の良い機械語を生成できると言われている。
機械語を生成しないコンパイラ
以前は上述のようにコンパイラといえば、もっぱら機械語を生成するソフトウェアを指していたが、Javaの登場以降、中間バイトコードと呼ばれる仮想マシン用の機械語を生成するソフトウェアもコンパイラと呼ばれるようになった。
仮想マシン用の機械語であれば機械語といえなくもないが、近年では機械語ですらなくJavaScriptのソースコードに変換して実行する言語も登場したため、こういった「実行に向けて他の(メジャー)言語に変換するソフトウェア」もコンパイラと呼ばれるようになっている(トランスコンパイラという語を短縮したトランスパイラという用語も用いられるようにはなってきている)。
関連項目
- 3
- 0pt