目次(まとめ)

◾️ リンカは、目的プログラムを実行可能ファイルに変換する

◾️ ロードは、実行可能ファイルをメモリに読み込む

◾️ 参考文献

 

こんにちは、みっちゃんです。

以前の記事で、プログラミング言語を使って書いたソースコードを機械語に翻訳して目的プログラムを生成する「コンパイラ」を紹介しました。

今回の記事では、コンパイラによって生成された目的プログラム(機械語)が実行される過程で働く「リンカ」と「ローダ」を解説します。

リンカは、目的プログラムを実行可能ファイルに変換する

以前の記事で紹介したように、コンパイラは、複数の命令が書かれたソースコードをまとめて機械語に翻訳して、目的プログラムを作成します。

作成された目的プログラムは「リンカ」が実行可能なファイルに変換します。

リンカは、"字句解析" や "構文解析"、"意味解析"、"最適化" などを介して、実行可能ファイルを生成します。

例えば、最適化では、"コードのサイズ" や "実行時間" の面で最適化が行われています。

無駄な繰り返し文などがあれば、実行速度を考えると、バラバラに分けた方がいいといったような最適化が行われます。

また、さまざまなサブルーチンからなるプログラムでは、サブルーチン部分をメインプログラムの中に内包させたほうが、無駄な呼び出しが減ることで最適化されたりしています。

ロードは、実行可能ファイルをメモリに読み込む

実行可能ファイルは、メモリに読み込まれてはじめて実行されます。

この読み込みを担うのが「ローダ」です。

参考文献

きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社