プログラムをC言語で書いても、コンピュータはプログラムをそのまま実行するわけではありません。C言語で書かれたプログラムはコンピュータが理解できる言語(機械語)に変換する必要があります。この変換プログラムのことをコンパイラ(compiler)といいます。

C言語で書かれたプログラム(ファイル

<C言語のプリプロセッサ

マクロ展開されたプログラム(ファイル)

<Cコンパイラ(狭い意味で)>

アセンブリ言語のプログラム(ファイル)

アセンブラ

コンピュータが認識できる言語(データファイル) &  システムライブラリ(データファイル)

リンカ(リンクを行うプログラム)>

実行可能なファイル(データファイル)

機械語