ランタイム (プログラムライフサイクルフェーズ)
ランタイム (英: runtime) または実行時は、計算機科学では、コンピュータ・プログラムのライフサイクルの最終フェーズであり、コードがコンピュータの中央処理ユニット(CPU)でマシンコードとして実行されている状態である。言い換えると、「ランタイム」はプログラムの実行フェーズである。
ランタイムエラーは、プログラムの実行後または実行中(実行状態)に検出されるが、コンパイル時エラーは、プログラムが実行される前にコンパイラによって検出される。型チェック、レジスタ割り付け、コード生成、およびコード最適化は通常、コンパイル時に実行されるが、言語やコンパイラによっては実行時に実行される場合がある。他にも多くのランタイムエラーが存在し、ゼロ除算エラー、ドメインエラー、配列添え字の範囲外エラー、算術アンダーフローエラー、いくつかのタイプのアンダーフローおよびオーバーフローエラー、および一般的に考慮される他の多くのランタイムエラーなど、さまざまなプログラミング言語によって異なる方法で処理される。
実装の詳細
[編集]プログラムを実行する場合、ローダは最初に必要なメモリセットアップを実行し、プログラムを必要なダイナミックリンクライブラリにリンクする。次に、プログラムのエントリーポイントから実行を開始する。場合によっては、言語または実装では、代わりに言語ランタイムによってこれらのタスクが実行されるが、これは一般的なコンシューマーオペレーティングシステムの主流言語では珍しいことである。
一部のプログラムのデバッグは、実行時にのみ実行できる(または、実行するとより効率的または正確になる)。論理エラーと配列境界チェックはひとつの例である。このため、高度なコンパイル時チェックとプレリリーステストにもかかわらず、プログラムが実際のデータを使用して実稼働環境でテストされるまで、一部のプログラミングバグは発見されない。この場合、エンドユーザーは「ランタイムエラー」メッセージを受け取る可能性がある。
アプリケーションエラー(例外)
[編集]例外処理は、ランタイムエラーを処理するように設計された言語機能のひとつであり、完全に予期しない状況だけでなく、予測可能なエラーや異常な結果を、それがない言語に必要なインラインエラーチェックの量なしでキャッチする構造化された方法を提供する。ランタイムエンジンの最近の進歩により、特別なソフトウェア製品をランタイムエンジンに接続することにより、対象となるすべての例外の「根本原因」デバッグ情報を提供し、ソースコードとは独立して実装される自動例外処理が可能となる。