コンパイラ(compiler)とは、プログラミング言語のソースコードから機械語を生成するソフトウェアである。なお、アセンブリ言語から機械語を生成するソフトウェアはアセンブラと呼ばれる。
コンピュータが出来たばかりの頃のプログラマは機械語でプログラミングを行うしかなく、その 1 と 0 を扱う苦労は多大なものであった事は容易に想像できる。アセンブリ言語が開発されてからは多少事情は改善されたものの、少し複雑な処理を行うプログラムを書こうとすればたちまち解読不能なコードが出来上がる。
そこで発明されたのが高級言語とそのコンパイラである。高級言語から機械語への翻訳をコンパイラが行う事で、プログラマはハードウェア構成や機械語を知る事無く高級言語によってプログラミングを行う事が出来るようになった。抽象度の高い高級言語のコードは、同じ処理を機械語で記述した場合に比べて一般的に可読性の高いものとなる。
最近のコンパイラでは、ハードウェア構成やデータの利用状況などを考慮した最適化を行う事によって、普通のプログラマが機械語で直接書くよりも効率の良い機械語を生成できると言われている。
以前は上述のようにコンパイラといえば、もっぱら機械語を生成するソフトウェアを指していたが、Javaの登場以降、中間バイトコードと呼ばれる仮想マシン用の機械語を生成するソフトウェアもコンパイラと呼ばれるようになった。
仮想マシン用の機械語であれば機械語といえなくもないが、近年では機械語ですらなくJavaScriptのソースコードに変換して実行する言語も登場したため、こういった「実行に向けて他の(メジャー)言語に変換するソフトウェア」もコンパイラと呼ばれるようになっている(トランスコンパイラという語を短縮したトランスパイラという用語も用いられるようにはなってきている)。
掲示板
3 ななしのよっしん
2014/02/12(水) 07:28:49 ID: LSHnLXfYs3
なにかの拍子にプログラムを見かけるたびに
どうやってコンピュータが英語を読んでるんだろうって
疑問に思ってたけどそういうことだったのか
4 ななしのよっしん
2018/03/21(水) 21:30:48 ID: mafZIzm/tT
Moo仁井谷氏が愛してやまないものという記述あるといいかも?
採算度外視の暴走の末今は亡きコンパイル、コンパイルハートでは臨時監修(契約解除)で黒歴史扱いされたり、自営業?みたいなコンパイル○。
どんだけコンパイルを捨てきれないんだこの人。ぶっとんでてウケる。
本人は若い頃コンパイラ言語にひたすら熱が入ってたんだね。
5 ななしのよっしん
2021/10/06(水) 00:09:19 ID: 1ae9AOSm68
今の世の中ほとんどの場合コンパイラはmakeやらビルドやらの包括的概念の中に閉じ込められていて、それらの定義をいじる人以外にはコンパイラは縁遠かったりするよね
急上昇ワード改
最終更新:2024/12/22(日) 18:00
最終更新:2024/12/22(日) 17:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。