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