ランタイムライブラリ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ランタイムライブラリ(英:run-time library)は、プログラムを実行するために必要なライブラリのこと。ランタイムとは「実行時」という意味である。単にランタイムという場合もある。
[編集] 概要
簡単な機械語命令に置き換えられる文、例えば整数型変数の加算、比較等はプログラム中に現れる毎にオブジェクトコードの中に埋め込んでいけばいい。ところが、書式付入出力(Cでいえばprintf関数、Pascal/Modula-2等でいえばWRITE手続等)等のように複雑で、しかもプログラム中の複数の部分から呼び出される可能性の高いルーチンは、独立したライブラリとして実装する方がプログラムをコンパクトにすることができる。このような実行時に必要なライブラリを実行時ライブラリと呼ぶ。
実行時ライブラリはリンカによって各プログラムに付け加えられことがある。この場合、予め各種ルーチンのプログラム中での相対的なアドレスが分かっているため、機能の呼び出しはきわめて簡単である(静的リンク)。また、実行時ライブラリは言語処理系依存の独立したファイルとして供給されることもある。そうすると、特定の言語処理系で製作されたプログラム間で一つのライブラリファイルを共用することができるので、ディスク容量の節約になる。ランタイムライブラリ、ランタイムと呼ぶ場合、このような独立した実行時ライブラリファイルを指すことが多い。
たとえば、Visual Basicを使って書かれたプログラムを動かす場合、そのプログラム単独では実行出来ず、プログラムを作成するソフトウェアであるVisual Basicを製作しているMicrosoft社から無料で配布されているランタイムライブラリをパソコンにインストールしていないと動かないことがある。
Visual Basicを例にあげたが、他のVisual C++やC++ Builderなどといった他の言語で作成されたプログラムでも大抵はランタイムライブラリがある。インストールが不要なものはAPIやフレームワークとしてオペレーティングシステムが持っているか、プログラム中に組み込んでしまっている。
マルチタスクOSの場合、同時に動作している複数のタスクが同じライブラリファイルを参照する可能性がある。同じファイルを参照するならば、それぞれのタスク毎にライブラリをロードするのではなく、ある同一のメモリ空間内のライブラリを共有すると効率が良い。これを共有ライブラリと呼ぶ。この場合、実行時に当該ライブラリがロードされていない場合は、OSの機能を用いてライブラリをロードする必要がある。逆に、当該ライブラリを必要とするタスクが存在しなくなれば、メモリ空間からそのライブラリを取り除くことができる。また、実行時に初めてリンクが行われる動的リンクを行うことになる。
上記の各製品のランタイムライブラリは共有ライブラリとして実装されている。詳細についてはダイナミックリンクライブラリ及びライブラリを参照されたい。ダイナミックリンクライブラリは言語処理系メーカから供給されるだけでなく、OS自体の機能に関わるものはOSメーカからも供給される。
.NET FrameworkやDirectXもランタイムライブラリの一種という側面も持っている。