Шрёдинбаг
Материал из Википедии — свободной энциклопедии
Шрёдинбаг (англ. Schroedinbug) — термин, используемый в программировании для описания программной ошибки (бага), которая никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на неё в исходном коде или попытается использовать программу в необычных условиях и осозна́ет, что система вообще не могла работать при наличии такой ошибки. После этого программа перестаёт работать вообще до тех пор, пока ошибка не будет исправлена. Хотя это звучит невероятно, некоторые программы содержат в себе латентные программные ошибки. Это слово, в отличие от слова «баг», в русском языке практически не используется.
Содержание |
[править] Происхождение названия
Слово «шрёдинбаг» происходит от мысленного эксперимента с котом Шрёдингера.
[править] Возможные причины возникновения
Шрёдинбаг может быть образован сложной комбинацией парных ошибок (когда ошибка в одном месте компенсируется ошибкой противоположного действия в другом месте). В результате система может стать очень чувствительной к малым влияниям — небольшое изменение может разрушить баланс ошибок и парализовать работу системы (зачастую при этом откат рокового изменения не решает проблему, так как состояние системы успело значительно измениться).
[править] Упоминание в художественных произведениях
В фильме «Кот Шрёдингера» шрёдинбаг обнаруживается в программе Американской оборонной системы и приводит к катастрофической ошибке безопасности.
Примером шрёдинбага из классического фольклора можно считать историю о старике и бороде (хотя само название «шрёдинбаг» в ней, разумеется, не упомянуто). Некоторого старика с длинной бородой спросили, куда он кладет бороду, когда спит — под одеяло или на одеяло. Он понял, что не знает, а когда лег спать, попытался выяснить это опытным путем. Попробовал положить под одеяло — очень неудобно, на одеяло — тоже очень неудобно. Поскольку оба варианта не подходили, старик больше не мог заснуть, и через некоторое время скончался от недостатка сна.