Loading article…
コンピュータ言語のフェイルストップ サブセットは、例外条件が発生した場合を除いて、元の言語と同じセマンティクスを持つ言語です。フェイルストップ サブセットは、スーパーセット言語が例外条件を報告するときは必ず例外条件を報告する必要がありますが、他の場合にはさらに例外条件を報告することもあります。
フェイルストップ言語は、正確性が非常に重要なコンピュータ システムでよく使用されます。これは、そのようなシステムをフェイルファーストにする方が簡単だからです。たとえば、多くのプログラミング言語の「+」演算子は、浮動小数点オーバーフローの可能性があるため結合性がありません。一般に想定される特性が当てはまらない場合にフェイルファーストになるようにこれらの言語を修正すると、正しいコードを記述して検証することがはるかに簡単になります。
例
広く使用されている多くのプログラミング言語では、預金額または古い口座残高が非常に大きい場合、以下のコードによってオーバーフローした値が new_bank_account_value に割り当てられ、銀行口座残高が減る可能性があります。
new_bank_account_value = old_bank_account_value + amount_deposited // 2,147,483,647 を超えるとオーバーフローする 32 ビット符号付き整数を使用した計算例// -2,147,483,646 = 2,147,483,640 + 10
しかし、オーバーフローを例外条件として扱うフェイルストップ言語では、それが正しいか、例外条件で終了するかのどちらかになります。
