範囲制約(range constraint)
型に値の範囲を持たせ、違反を実行時にConstraint_Error例外として検出するAdaの仕組み。配列アクセスの境界チェックにも使われる。
- 概念URI
https://comcomponent.com/knowledge/ada-range-constraint/
- 別名・表記
- subtype / Constraint_Error
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- Ada(プログラミング言語)は範囲制約(range constraint)の実装を担います。Adaは型に値の範囲を持たせ、違反を実行時にConstraint_Error例外として検出する範囲制約を実装している。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- 範囲制約(range constraint)はAriane 5初号機(Flight 501)の打ち上げ失敗の原因になることがあります。Ariane 4向けの慣性基準装置コードをAriane 5に再利用した際、水平速度に関する内部値の変換が範囲検査で失敗して例外になったが、保護されていなかったため打ち上げ失敗につながった。実行時チェック自体は問題を検出したが、前提の見直し不足と例外後のフェイルセーフ設計の不備が真因である。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- 範囲制約(range constraint)はバッファオーバーランを防ぎます。検査を有効にしたままビルドした場合、Adaの配列アクセスは境界チェックされ、範囲外アクセスは未定義動作ではなく定義されたConstraint_Error例外になるため、C/C++で長年主要原因とされてきたバッファオーバーランを防ぐ。pragma Suppressや検査を外すコンパイラオプションで検査を抑止すれば、この保証は失われる。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。