高度な機能
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/10/04 09:07 UTC 版)
コンパイル型またはインタープリター型言語の一部では、アプリケーションコードがランタイムシステムと直接対話することを可能にするインターフェースが提供される。たとえば、Java言語のThreadクラスは他のスレッドの開始や停止等を行う (単一のスレッドで実行される) コードを実現する。通常、タスクスケジューリングやリソース管理といった、ある言語の振る舞いの核となる側面はこの方法でアクセスすることはできない。 ランタイムシステムによって実装される場合がある高レベルの振る舞いには、画面上でのテキストの描画やインターネット接続の実行等がある。こうした振る舞いはOSによっても提供される場合が多く、その場合、ランタイムシステムは、ランタイムシステム呼び出しをOS呼び出しへと翻訳する抽象化レイヤーとして実装される。これは、OSカーネル自体がランタイムシステムと見なせることと、OSの振る舞いを呼び出すOS呼び出しがランタイムシステムとの対話と見なされ得ることをも意味する。 極端な例では、ランタイムシステムはPコードマシンまたは仮想マシンといった、プロセッサーの命令セットさえも隠蔽するサービスを提供し得る。これはAWK等のインタープリター言語の多くと、Java等のマシンから独立した中間言語コード (バイトコード等) にコンパイルすることを想定した言語の一部によって採用された手法である。この手法により、言語の実装作業と様々なマシンへの移植が大幅に単純化され、しかもリフレクション等の洗練された言語機能の効率が向上する。さらに、同一のプログラムを明示的に再コンパイルをせずに任意のマシンで実行するという、ワールドワイドウェブの普及以来非常に重要になっている機能が可能になる。実行を高速化するため、ランタイムシステムの中には機械語への実行時コンパイルを実装しているものもある。 もう1つの極端な例では、物理CPU自体を特定のアセンブリ言語のランタイムシステムの実装と見なすことができる。この考え方では、実行モデルは物理CPUシステムとメモリシステムによって実装される。たとえて言うと、高級言語のシステムはそれ自体が別の言語で実装される。こうしてCPU自体 (実際にはプログラムカウンターの増加や命令のスケジューリングを決定するCPU内部のデジタル回路構造) が最下層のランタイムシステムの役目を負った、ランタイムシステムの階層構造が生み出される。 ランタイムシステムの現代的側面は、Pthreadのミューテックス構造やOpenMPの並列セクション構造等の並列実行の振る舞いである。そのような並列実行の振る舞いを持つランタイムシステムは、proto-runtime手法に従ってモジュール化される場合がある。
※この「高度な機能」の解説は、「ランタイムシステム」の解説の一部です。
「高度な機能」を含む「ランタイムシステム」の記事については、「ランタイムシステム」の概要を参照ください。
- 高度な機能のページへのリンク