目次(まとめ)
◾️ リンカは、目的プログラムを実行可能ファイルに変換する
◾️ ロードは、実行可能ファイルをメモリに読み込む
◾️ 参考文献
こんにちは、みっちゃんです。
以前の記事で、プログラミング言語を使って書いたソースコードを機械語に翻訳して目的プログラムを生成する「コンパイラ」を紹介しました。
今回の記事では、コンパイラによって生成された目的プログラム(機械語)が実行される過程で働く「リンカ」と「ローダ」を解説します。
リンカは、目的プログラムを実行可能ファイルに変換する
以前の記事で紹介したように、コンパイラは、複数の命令が書かれたソースコードをまとめて機械語に翻訳して、目的プログラムを作成します。
作成された目的プログラムは「リンカ」が実行可能なファイルに変換します。
リンカは、"字句解析" や "構文解析"、"意味解析"、"最適化" などを介して、実行可能ファイルを生成します。
例えば、最適化では、"コードのサイズ" や "実行時間" の面で最適化が行われています。
無駄な繰り返し文などがあれば、実行速度を考えると、バラバラに分けた方がいいといったような最適化が行われます。
また、さまざまなサブルーチンからなるプログラムでは、サブルーチン部分をメインプログラムの中に内包させたほうが、無駄な呼び出しが減ることで最適化されたりしています。
ロードは、実行可能ファイルをメモリに読み込む
実行可能ファイルは、メモリに読み込まれてはじめて実行されます。
この読み込みを担うのが「ローダ」です。
参考文献
きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社