【こんぱいら】
コンパイラ とは?
最終更新:
💡 コードを、実行に使う別の形へ翻訳する道具
ソースコードを解析し、機械語やバイトコードなど別の形式へ変換するプログラム。出力の形式や実行までの手順は処理系によって違う。コンパイルが成功しても、すべてのバグがなくなるわけではない。
📌 このページのポイント
ソースコードを、何に変えるの?
機械語へ変換するものも、中間の形式へ変換するものもあるよ。たとえばGCCでCのコードからオブジェクトファイルを作る場合や、Javaのjavacで.classファイルを作る場合がある。全部のコンパイラが同じ形式を出すわけではないんだ。
コンパイルすれば、すぐ実行できる?
追加の工程が必要な場合があるよ。Cなら、オブジェクトファイルやライブラリをリンクして実行ファイルを作る。GCCは指定によって前処理・コンパイル・アセンブル・リンクまでを進めたり、途中で止めたりできるんだ。
Javaの.classも、実行ファイル?
インタプリタとは、正反対なの?
コンパイル成功なら、バグはない?
文法や型などの問題を検出できる場合はあるけれど、成功は正しい結果の保証ではないよ。計算式の間違いや想定外の入力などは、テストや実行で確かめる。コンパイラはコードの変換と検査を助ける道具で、仕様に合うかの確認まで代わりにしてくれるわけではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「コンパイラ」って出てきたら「コードを、実行に使う別の形式へ翻訳するプログラム」と思えばだいたいOK!
📖 おまけ:英語の意味
「Compiler」 = コンパイルを行うプログラム
💬 コードを解析して別の形式へ変換する処理をコンパイルと呼ぶよ。何に変換するかはコンパイラによって違う。