отказоустойчивый
Подмножество обеспечивающее отказоустойчивость, компьютерного языка, — это то, которое имеет ту же семантику , что и исходное, за исключением случая, когда возникает исключительное условие . Подмножество аварийной остановки должно сообщать об исключительном состоянии всякий раз, когда расширенный язык сообщает об этом, но может дополнительно сообщать об исключительном состоянии в других случаях.
Языки отказоустойчивости часто используются в компьютерных системах, где корректность очень важна, поскольку такие системы легче сделать отказоустойчивыми . Например, оператор «+» во многих языках программирования не является ассоциативным из-за возможности переполнения чисел с плавающей запятой . Исправление этих языков для быстрого отказа, когда общепринятые свойства не соблюдаются, значительно упрощает написание и проверку правильности кода.
Примеры
[ редактировать ]Во многих широко используемых языках программирования приведенный ниже код может уменьшить стоимость банковского счета, если сумма депозита или стоимость старого счета очень велика, вызывая присвоение значения переполнения new_bank_account_value.
new_bank_account_value = old_bank_account_value + amount_deposited
// example calculation with 32-bit signed integers to demonstrate, which overflow above 2,147,483,647
// -2,147,483,646 = 2,147,483,640 + 10
Но в языке отказоустойчивости, который рассматривает переполнение как исключительное условие, оно либо корректно, либо завершается исключительным условием.