ランタイムシステム
コンパイル型またはインタープリター型言語の一部では、アプリケーションコードがランタイムシステムと直接対話することを可能にするインターフェースが提供される。たとえば、Java言語のThreadクラスは他のスレッドの開始や停止等を行う (単一のスレッドで実行される) コードを実現する。通常、タスクスケジューリングやリソース管理といった、ある言語の振る舞いの核となる側面はこの方法でアクセスすることはできない。
ランタイムシステムによって実装される場合がある高レベルの振る舞いには、画面上でのテキストの描画やインターネット接続の実行等がある。こうした振る舞いはOSによっても提供される場合が多く、その場合、ランタイムシステムは、ランタイムシステム呼び出しをOS呼び出しへと翻訳する抽象化レイヤーとして実装される。これは、OSカーネル自体がランタイムシステムと見なせることと、OSの振る舞いを呼び出すOS呼び出しがランタイムシステムとの対話と見なされ得ることをも意味する。
極端な例では、ランタイムシステムはPコードマシンまたは仮想マシンといった、プロセッサーの命令セットさえも隠蔽するサービスを提供し得る。これはAWK等のインタープリター言語の多くと、Java等のマシンから独立した中間言語コード (バイトコード等) にコンパイルすることを想定した言語の一部によって採用された手法である。