Помилки так само невичерпні, як і атом.
Аксіома: У будь-якій програмі є помилки.
Закон пропорційності: Чим більше програма необхідна, тим більше в ній помилок.
Слідство: Помилок не містить лише абсолютно непотрібна програма.
Фундаментальний закон теорії помилок: На помилках вчаться.
Слідство 1: Програміст, який написав програму, стає вченим.
Слідство 2: Чим більше програміст робить помилок, тим швидше він робиться вченим.
Слідство 3: Великий вчений-програміст ніколи не пише правильні програми.
Зауваження: На те він і вчений.
Вказівка починаючому програмісту: Якщо ви з першого разу зуміли написати програму, в якій транслятор не виявлено жодної помилки, повідомте про це системного програмісту. Він виправить помилки в трансляторі.
Закон необхідності помилок: Програміст може знайти помилку тільки в чужій програмі.
Слідство: Помилці не все одно, хто її знайде.
Рада починаючому програмісту: Ніколи не виправляйте знайдені помилки, бо це спричинить за собою появу невідомого числа незнайдених. Краще опишіть їх в супровідній документації як особливість програми.
Визначення: Будемо називати мовою помилок правила, в обхід яких пишуться програми.
Помилки можуть слідувати один за одним.
Від перестановки двох еквівалентних помилок результат не змінюється (коммутативность еквівалентних помилок).
Дві послідовні помилки можна об'єднати в одну, більш сильну.
Однакові помилки необязятельно робити кожен раз, досить зробити одну, а потім обрашается до неї в міру необхідності з будь-якого місця програми.
Помилки можуть утворювати цикли. Найбільш стійкий з них - нескінченний.
Помилки можуть викликати один одного і самі себе (рекурсивность помилок).
Помилки допускають багаторазове вкладення одна в одну. Дві однакові вкладені помилки називаються парній помилкою і помилкою не є.
Властивість парності помилок: Якщо написана програма спрацювала правильно, то це означає, що під час її роботи виповнилося парне число помилок або програміст не зрозумів завдання.
Формулювання вищенаведеного властивості, призначена для політиків: Помилка, повторена двічі, перестає бути помилкою.
ПОМИЛКИ І БАЗОВА ОС
Під час виконання помилки мають найвищий пріоритет. Перервати виконання помилки може тільки інша, більш активна помилка.
Запити операційної системи до помилок помилками можуть ігноруватися.
Запити помилок до операційної системи ігноруватися не можуть.
При роботі з файлами помилки можуть користуватися файлової системою базової ОС та її помилками.
На ЕОМ з паралельною архітектурою може виконуватися кілька помилок одночасно.
Системні програми полегшують процес написання прикладних програм і їх помилок.
Визначення: Тестування - це процес знаходження помилок в тесті. Хороший тест повинен містити помилки, що компенсують їх нестачу в тестованої програмі.
Програма-транслятор, призначена для перекладу програм з мови високого рівня на машинну мову, при перекладі породжує помилки. Помилки, які містилися у вихідному описі, перекладаються безпомилково.
Заключний рада тим, хто до нього добрався: До початку роботи над проектом слід ретельно продумати всі необхідні помилки і зв'язку між ними. Це значно спростить роботу над помилками в самому проекті.