ランタイムシステム
すべてのプログラミング言語において実行モデルが規定されており、多くの言語でそのモデルの少なくとも一部がランタイムシステムに実装されている。議論の余地があるものの、プログラムの直接の作用でない振る舞いはすべてランタイムシステムの振る舞いである、という風にランタイムシステムを定義する方法もある。この定義では、関数呼び出しの前にパラメーターをスタックに置くこと、ディスクI/Oの振る舞い、そして並列実行関係の振る舞い等がランタイムシステムの一部として含まれる。
この定義によると、コンパイル言語、インタープリター言語、そして組み込みドメイン固有言語を含め、基本的にすべての言語にランタイムシステムが存在する。Pthreads等のスタンドアローンの実行モデルを呼び出すAPIにすらランタイムシステム、つまり実行モデルの振る舞いの実装が存在する。
ランタイムシステムに関する学術論文は、並列ランタイムシステムの実装の詳細に焦点を置くものがほとんどである。並列ランタイムシステムで注目すべき例は、よく用いられる並列プログラミングモデルであるCilk(英語版)のランタイムシステムである。また、並列ランタイムシステムの作成を単純化するためにproto-runtime toolkitが作成された。
実行モデルの振る舞いに加えて、ランタイムシステムは型検査、デバッグ、またはコード生成と最適化等のサポートサービスを実行する場合もある。
ランタイムシステム(英: runtime system / run-time system)とは、主にコンピュータプログラムの実行モデルの一部を実装するものである。これは、ランタイムシステムが動作中となる期間である、プログラムのランタイムライフサイクルフェーズとは異なる。大多数の言語には何らかの形のランタイムシステムがあり、その言語の観点で規定された作用を実行する順序に対する制御はランタイムシステムによって実装される。年月とともに「ランタイムシステム」という用語の意味は拡大し、実行時に動的に決定されるほぼすべての振る舞いを指すようになった。