高級言語のプログラムを解析して、より低級の言語に変換する作業。主にはマシン語かアセンブリ言語に変換する。
コンピューターは直接にはマシン語でしか動かないので、C言語などのプログラムはこのマシン語にまで変換する必要があるわけです。
普通は実行ファイルを直接作る作業ではなく、その前段階のファイルを作る作業になります。ですが、プログラム練習用のツールでは「コンパイル」と「リンク」を分けず、「コンパイル」でまとめていることがあります。
変換の初めに「プリプロセッサ」という処理があり、ここで # の付いた命令の処理を行います。