注:これが以前に尋ねられたことがないことに驚いています。もしそうであれば、検索でそれを見つけることができませんでした。
私はたくさんのウェブサイトにアクセスし、たくさんの記事を読んだり、たくさんの説明を聞いたりしました。それらのほとんどは良かったが、それらはすべて、広すぎるか、または複雑すぎるか、または単なるひどいものでした。だから私の質問は、コンパイラはどのように機能するのですか?
これが難しい、幅広い質問の場合は教えてください。そうでない場合は、質問に答えてください。
コンパイラは、別のプログラムのソースコードをプログラミング言語から実行可能コードに変換するプログラムです。
ソースコードは通常、高水準プログラミング言語(Pascal、C、C++、Java、Perl、C#など)です。実行可能コードは、CPUが直接実行できる一連のマシン命令である場合と、仮想マシンによって解釈される中間表現である場合があります(例:Javaバイトコード)。
つまり、コンパイラはプログラムを人間が読める形式から機械が読める形式に変換します。
コンパイラがどのように機能するかについては、それは確かに複雑です。この主題についての本と大学のコースがあります。プロセスの主要な段階の概要を簡単に説明しますが、これは非常に大まかな概要です。
繰り返しますが、これは非常に簡単な説明です。最新のコンパイラーは非常にスマートで、その結果、非常に複雑です。
コンパイラは、プログラミング言語(ソース言語)で記述されたソースコードを別のコンピュータ言語(ターゲット言語、多くの場合、オブジェクトコードと呼ばれるバイナリ形式を持つ)に変換するコンピュータプログラム(または命令セット)です。ソースコードを変換する最も一般的な理由は、実行可能プログラムを作成することです。
コンパイラーは、高水準言語のソース・プログラムを基礎となるハードウェアと橋渡しします。コンパイラーには以下が必要です。