Теория ошибок

Источник: Lib.Ru — В.Тихонов. Теория ошибок

Ошибки так же неисчерпаемы, как и атом.

Аксиома

В любой программе есть ошибки.

Закон пропорциональности

Чем более программа необходима, тем больше в ней ошибок.

Следствие: Ошибок не содержит лишь совершенно ненужная программа.

Фундаментальный закон теории ошибок

На ошибках учатся.

Следствия:

Указание начинающему программисту: Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.

Закон необходимости ошибок

Программист может обнаружить ошибку только в чужой программе.

Следствие: Ошибке не всё равно, кто её обнаружит.

Совет начинающему программисту: Никогда не исправляйте найденные ошибки, ибо это повлечёт за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.

Язык ошибок

Определение: Будем называть языком ошибок правила, в обход которых пишутся программы.

Свойство чётности ошибок

Если написанная программа сработала правильно, то это значит, что во время её работы выполнилось чётное число ошибок или программист не понял задание.

Формулировка вышеприведённого свойства, предназначенная для политиков: Ошибка, повторенная дважды, перестаёт быть ошибкой.

Взаимодействие ошибок с базовой операционной системой

Тестирование

Тестирование — это процесс нахождения ошибок в тесте. Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.

Языковый редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удаётся обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет.

Программа–транслятор, предназначенная для перевода программ с языка высокого уровня на машинный язык, при переводе порождает ошибки. Ошибки, которые содержались в исходном описании, переводятся безошибочно.

Заключительный совет тем, кто до него добрался

До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте.