ライブラリとは、アプリケーションプログラムでよく使われる関数や機能、データなどを共通に利用するためひとつのファイルとしてまとめておくもの。
ライブラリ自体は単独で実行することはできず、他のプログラムの一部として動作する。
ライブラリは、利用される方式に動的リンクライブラリと静的リンクライブラリの2種類ある。
【 動的リンクライブラリ 】
OS内に組み込まれ、アプリケーションプログラムが必要なときに連結・実行されるライブラリ。DLL (Dynamic Link Library) と呼ばれることもある。
動的リンク (dynamic linking)は、あるライブラリ内のデータ(コードを含む)を新たな実行ファイルのコンパイル時にコピーすることはなく、ディスク上に別のファイルとして存在している。
コンパイル時にリンカが行うのは、その実行ファイルが必要とするのがどのライブラリのどの部分であるか(関数名やインデックス)を記録するだけである。
リンク作業の大部分はそのアプリケーションがメモリ上にロードされたときか、実行時である。
リンクを行うプログラムはローダ(loader)と呼ばれ、実際にはオペレーティングシステム (OS)の一部と見なされる。
適当な時点でローダは必要なライブラリをディスク上で見つけてプロセスのメモリ空間に(追加のデータ空間と共に)マッピングする。
OSによってはプロセスが実行開始する前でないとライブラリをリンクできないものもあるが、多くのOSではプロセス実行時に実際にライブラリを参照したときにリンクすることができる。
動的リンクライブラリは複数のプログラムから参照することが出来、同じライブラリを利用するプログラムは
内部にライブラリの内容を持たなくて済むので、プログラムサイズが軽減される。
【 静的リンクライブラリ 】
リンカによって、コンパイル時にアプリケーションプログラム内に組み込まれるライブラリ。ロードライブラリやスタティックリンクライブラリとも呼ばれる。
プログラムのサイズは大きくなるが、ライブラリを併せて配布しなくてよい、動作速度が速いなどのメリットを持つ。
ライブラリの形式には次のようなものがある。
【 ソースライブラリ 】
ソースコードの状態でライブラリとなっているもの。コンパイル時に一緒にモジュール化して使う。
【 オブジェクトライブラリ 】
オブジェクトコードの状態でライブラリとなっているもの。複数のオブジェクトファイルの集まりです。
クラスライブラリとは、ある特定の機能を持ったプログラムを、オブジェクト指向プログラミング言語を用いて一つの「クラス」として部品化し、関連する複数のクラスを一つのファイルにまとめたもの。
オブジェクト指向言語では、共通する属性やメソッド(手続き)を持ったオブジェクト群をまとめたものを「クラス」と呼ぶ。こうした「クラス」はプログラムの部品として利用できるため、よく使われる汎用的なものをクラスライブラリに集めておくことで、プログラミングの労力を軽減することができる。
クラスライブラリのことをオブジェクトライブラリという場合もある。
www.it-shikaku.jp