25 March 2006 @ 01:03 am
ТЕОРИЯ ОШИБОК В. ТИХОНОВА  


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

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

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

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

Фундаментальный закон теории ошибок. На ошибках учатся.

Следствие 1. Программист, написавший программу, становится ученым.

Следствие 2. Чем больше программист делает ошибок, тем быстрее он делается ученым.

Следствие 3. Крупный ученый-программист никогда не пишет правильные программы.

Замечание. На то он и ученый.

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

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

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

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

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

Язык ошибок. Ошибки могут следовать друг за другом.
От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).

Две последовательные ошибки можно объединить в одну, более сильную.

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

Ошибки могут образовывать циклы. Наиболее устойчивый из них - бесконечный.

Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).

Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.

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

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

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

Во время исполнения ошибки имеют наивысший приоритет. Прервать исполнение ошибки может только другая, более активная ошибка.

Запросы операционной системы к ошибкам ошибками могут игнорироваться.

Запросы ошибок к операционной системе игнорироваться не могут.

При работе с файлами ошибки могут пользоваться файловой системой базовой ОС и ее ошибками.

На ЭВМ с параллельной архитектурой может выполняться несколько ошибок одновременно.

Системные программы облегчают процесс написания прикладных программ и их ошибок.

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

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

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

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


УМЕНИЕ ПРОВОДИТЬ ЭКСПЕРИМЕНТЫ

Первый закон работы в лаборатории
Горячая колба выглядит точно так же, как и холодная.

Правило для лаборантов
Когда не знаешь, что именно ты делаешь, делай это тщательно.

Восьмое правило Фингейла
Работа в команде очень важна. Она позволяет свалить вину на другого.

Кредо Фингейла
Истина в науке. Не позволяйте фактам вводить вас в заблуждение.

Краткий определитель современных наук
1. Если зеленое или дергается - это биология.
2. Если дурно пахнет - химия.
3. Если не работает - физика.

Закон Муэнча
Ничто так не способствует успешному внедрению новшеств, как отсутствие проверок.

Закон стратиграфии Мея
Качество корреляционной зависимости обратно пропорционально плотности точек.

Законы экспериментирования Весилинда
1. Если воспроизвести эксперимент сложно, проведите его единожды.
2. Если требуется провести прямую, получайте ее только по двум точкам.

Закон технологии Лермана
Любую техническую проблему можно преодолеть, имея достаточно времени и денег.

Следствие Лермана
Вам всегда будет не хватать либо времени, либо денег.

Лемма о предотвращении нововведения Роки
Финансирующие организации откажутся от вашего предложения, если его результаты не будут известны заранее.

Второй постулат большого пальца
Простая и приемлемая ложь полезнее сложной и непонятной истины.

Первый закон Джонса
Ученый, сделавший существенный вклад в любую область исследований и продолжающий работать в ней достаточно долго, становится здесь камнем преткновения прогресса - прямо пропорционально значимости своего первоначального вклада.

Закон Менна
Если ученый обнаружил факт, пригодный для печати, то последний становится центральным элементом его теории.

Следствие
Эта теория, в свою очередь, становится центральной для всего научного направления.

Определение взаимодействия определений Битова
Лемма - доказываемая истина, имеющая значение только для другой, более значительной истины - теоремы.

Правило линейки
Прямых линий не бывает.

Закон ошибок Грельба
При любой последовательности вычислений ошибки начнут выявляться на том конце, который противостоит началу проверки.

Аксиома Робертса
Существуют только ошибки.

Следствие Бермана из аксиомы Робертса
Что для одного ошибка, для другого - исходные данные.

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

Третий закон Грида
Машинная программа выполняет то, что вы ей приказали делать, а не то, что бы вы хотели, чтобы она делала.

Первая компьютерная аксиома Лео Бейзера
Закладывая что-то в ЭВМ, помните, куда вы это положили.

Руководство по системному программированию Штейнбаха
Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать.
 
 
Current Music: Pink Floyd - More
 
 
( Post a new comment )
brain_damage[info]brain_damage on March 27th, 2006 - 11:05 pm
>>Т.е. даже и не теория вовсе.
ок, в следующий раз добавлю тег "юмор" ))
дабы избежать недопонимания.

>> А кто такой В. Тихонов?
ХЗ... может клон петросяна с высшим образованием??..
(Reply) (Parent) (Link)