コンパイラは、別のプログラムのソースコードをプログラミング言語から実行可能コードに変換するプログラムです。
ソースコードは通常、高級プログラミング言語です。 (例:Pascal、C、C ++、Java、Perl、C#など)。実行可能コードは、CPUが直接実行できる一連のマシン命令の場合もあれば、仮想マシンによって解釈される中間表現(Javaバイトコードなど)の場合もあります。
つまり、コンパイラは、プログラムを人間が読める形式から機械が読める形式に変換します。
コンパイラの動作に関しては、それは確かに複雑です。このテーマに関する本や大学のコースがあります。プロセスの主な段階の概要を簡単に説明しますが、これは非常に大雑把な概要になります。
- 字句解析-プログラムのテキストを「トークン」に分割します。トークンは、識別子(キーワード、変数名、関数名など)や演算子(=、*、&など)などのプログラミング言語の「単語」です。 。
- 解析-トークンのシーケンスを解析ツリーに変換します。解析ツリーは、型宣言、変数宣言、関数定義、ループ、条件、式など、さまざまな言語構造を表すデータ構造です。
- 最適化-定数式を評価し、未使用の変数や到達不能なコードを最適化し、可能であればループを展開します。
- 解析ツリーをマシン命令(またはJVMバイトコード)に変換します。
繰り返しになりますが、これは非常に簡単な説明であることを強調します。最新のコンパイラは非常にスマートであるため、非常に複雑です。
コメント