コンピュータプログラミングにおいて、ランタイムライブラリとは、コンパイラがランタイム環境の動作の一部を呼び出すために使用する低レベルルーチンのセットであり、ランタイムライブラリの呼び出しをコンパイル済みの実行可能バイナリに挿入する。ランタイム環境は、プログラミング言語の実行モデル、組み込み関数、その他の基本的な動作を実装する。[1]コンピュータプログラムの 実行中 (実行時)に、ランタイムライブラリの呼び出しを実行すると、実行可能バイナリとランタイム環境の間で通信が発生する。ランタイムライブラリには、メモリ管理や例外処理用の組み込み関数が含まれることが多い。[2] そのため、ランタイムライブラリは常にプラットフォームとコンパイラに固有のものである。
ランタイム ライブラリはランタイム環境の動作の一部を実装する場合がありますが、利用可能な呼び出しのコードを読むと、通常は情報をパッケージ化してランタイム環境またはオペレーティング システムに送信するだけの薄いラッパーにすぎません。ただし、ランタイム ライブラリという用語は、そのコードの大部分がライブラリ呼び出しを介して直接アクセスできない場合でも、ランタイム環境自体のコードを含むことを意味する場合があります。
たとえば、実行時にのみ実行できる (またはより効率的または正確な) 一部の言語機能は、実行時に実装され、ランタイム ライブラリ API を介して呼び出される場合があります (一部の論理エラー、配列境界チェック、動的型チェック、例外処理、およびデバッグ機能など)。このため、開発中に高度なコンパイル時チェックとテストが実行されているにもかかわらず、一部のプログラミング バグは、実際のデータを使用して「ライブ」環境でプログラムをテストするまで発見されません。
別の例として、ランタイムライブラリには、対象となるCPUで直接サポートされていない算術演算の実装や、さまざまなコンパイラ固有の演算やディレクティブなど、コンパイル時にインライン化するには複雑すぎる組み込みの低レベル演算のコードが含まれている場合があります。[2] [3]
ランタイムライブラリの概念は、アプリケーションプログラマが作成したり第三者が配信したりする通常のプログラムライブラリや、実行時にリンクされるプログラムライブラリを意味する動的ライブラリと混同しないでください。たとえば、Cプログラミング言語では、最小限のランタイムライブラリ(一般に と呼ばれる)のみが必要ですが、各実装で提供する必要があるcrt0大規模な標準ライブラリ(C標準ライブラリと呼ばれる)が定義されています。 [1]
例
参照
参考文献
- ^ ab Bennett, Jeremy (2010 年 7 月)。「C ランタイムの初期化、crt0.o」。Howto : newlib の移植。Embecosm。2013年 12 月 30 日閲覧。
- ^ ab 「4. GCC 低レベルランタイムライブラリ」。GNUコンパイラの内部。GNU。2013年 12 月 30 日閲覧。
- ^ 「GCC が提供するその他の組み込み関数」。GCC入門。GNU。2013年 12 月 30 日閲覧。
外部リンク
- C ランタイム ライブラリとは何ですか? ( StackExchange )
