Не в состоянии прерванного подмножества компьютерного языка является тот , который имеет ту же семантику , что и оригинал, за исключением случая , когда исключительное состояние возникает. Подмножество отказоустойчивого набора должно сообщать об исключительном условии всякий раз, когда язык расширенного набора сообщает об одном, но может дополнительно сообщать об исключительном условии в других случаях.
Языки безотказной работы часто используются в компьютерных системах, где корректность очень важна, поскольку легче сделать такие системы отказоустойчивыми . Например, оператор «+» во многих языках программирования не ассоциативен из-за возможности переполнения с плавающей запятой . Исправление этих языков до отказа, когда обычно предполагаемые свойства не выполняются, значительно упрощает написание и проверку правильного кода.
Примеры
Во многих широко используемых языках программирования приведенный ниже код может уменьшить значение банковского счета, если сумма депозита или значение старого счета очень велико, вызывая присвоение значения переполнения new_bank_account_value.
new_bank_account_value = old_bank_account_value + amount_deposited // пример расчета с 32-битными целыми числами со знаком для демонстрации, которые переполняются выше 2147483647 // -2 147 483 646 = 2 147 483 640 + 10
Но в языке отказоустойчивости, который рассматривает переполнение как исключительное условие, оно либо правильно, либо завершится с помощью исключительного условия.