IT·テック

コンパイラ

外国語のレシピ本を丸ごと翻訳して、日本語の本として新しく一冊刷り上げてくれる翻訳家のような存在です。

  • 約3分
  • 図 1点
  • 2026-10-13 検証

定義

人間が読み書きしやすい言葉で書かれたプログラムを、多くの場合コンピュータがそのまま実行できる機械語に変換してくれるプログラムです(機械語ではなく別の中間言語に変換するコンパイラもあります)。一行ずつその場で訳すのではなく、原稿全体を読み込んで一度に新しいファイルを作ります。そのため、機械語になったファイルは、次からは翻訳家がいなくても単独で実行できます。

レシピ本を丸ごと翻訳してくれる人

外国語で書かれたレシピ本を一冊手に入れたとしましょう。料理をするには文字が読めなければいけませんが、私たちはその国の言葉がわかりません。そこで翻訳家に本を丸ごと預けて、日本語の本を新しく一冊受け取ります。

コンピュータも事情は同じです。人間は読みやすい言葉でプログラムを書きますが、コンピュータが理解できる言葉は0と1でできた機械語だけです。人間が書いた原稿をソースコードといい、この原稿を機械語のファイルに変えてくれる翻訳家がコンパイラです。

翻訳は実行する前に済ませておきます。だからプログラムを起動するたびに翻訳し直す必要はなく、翻訳済みのファイルはそのまま実行できます。私たちがダウンロードして動かすプログラムの多くは、このように事前に翻訳されたファイルです。

翻訳家は誤字脱字も見つけてくれます

翻訳家は文章を訳すだけではありません。原稿に抜けている単語や、前後のつじつまが合わない文があれば、訳している途中でも印をつけておきます。意味の通らない文を無理に訳すと、おかしなレシピ本ができてしまうからです。

コンパイラも原稿全体を読みながら、ルールに合わない箇所を探し出します。カッコを閉じていなかったり、数字を入れるべき場所に文字を入れていたりすると、翻訳を止めて何行目が問題なのかを知らせてくれます。このように翻訳の途中で見つかった問題をコンパイルエラーと呼びます。

おかげで、プログラムを動かす前にミスを先に見つけ出せます。原稿を読み終えたあとは、文章をより滑らかに整える作業もします。同じ計算を何度も繰り返させている箇所を一回にまとめるといった具合で、翻訳されたプログラムはより速く動くようになります。

もう少し正確に言うと:翻訳版は読む相手が決まっています

翻訳家から受け取った日本語のレシピ本は、日本語を読める人にしか役に立ちません。同じ原稿でも別の国の人に渡すなら、その国の言葉に翻訳し直す必要があります。

機械語も同じです。コンピュータの頭脳であるCPU(中央処理装置)は種類によって理解できる機械語が異なります(例:一般的なパソコン用のチップとスマートフォン用のチップ)。実行ファイルを収める形式や、OSに仕事を頼む方法もWindows、Linux、Macでそれぞれ違うため、CPUが同じでもそのままでは開けません。そのため、片方で作った実行ファイルがもう片方のコンピュータでは開けないことがあります。このときは同じ原稿をそのコンピュータのCPUとOSに合わせて翻訳し直します。

一方、翻訳家の代わりに通訳を呼ぶ方式もあります。料理をしているそばで一行ずつ読み上げてもらう方式で、プログラムの世界ではこうしたツールをインタプリタと呼びます。事前に翻訳しないのですぐに始められる反面、実行している間ずっと通訳が横にいなければなりません。

よくある誤解

誤解

コンパイラはプログラムを実行してくれるツールだ。

事実

実行を担当するのはOSとCPUです。コンパイラの仕事は、実行できるファイルを事前に作っておくところまでです。

誤解

コンパイルが成功すれば、プログラムに間違いはないということだ。

事実

翻訳家が見つけるのは、文法に合わない文です。文法は合っていても計算の順番を間違えて書いたミスは、実際に動かしてみないとわかりません。

日常で出会う場面

  1. ゲームや事務用ソフトをダウンロードしてすぐに実行できるのは、作った側が事前に機械語へ翻訳してあるからです。

  2. コードを保存してビルドボタンを押したとき、「○行目にカッコがありません」というメッセージが出るのがコンパイルエラーです。

つまり ひとことで

人間が書いたコード全体をコンピュータが理解できる機械語のファイルに事前に変換し、その過程で文法ミスまで見つけてくれる翻訳家です。

作成 2025-11-01 更新 2026-10-13 検証 2026-10-13