Афтар молодец. Аналогию придумал грамотно. Я думал, что программирование на примерах фиг объяснишь - либо видишь код матрицы, либо "видишь блондинку/брюнетку" (как Сайфер).
Афтар молодец. Аналогию придумал грамотно. Я думал, что программирование на примерах фиг объяснишь - либо видишь код матрицы, либо "видишь блондинку/брюнетку" (как Сайфер).
Теория ошибок является до смешного кратким введением в программирование. Все основные и второстепенные положения Теории проверены автором на практике и на коллегах, за что отдельное спасибо их вдовам и сиротам.
Эпиграф:
"Ошибки так же неисчерпаемы, как и атом"
Приписывается Карлу Марксу и его подельникам
Аксиома. В любой программе есть ошибки.
Следствие 1. В программе, состоящей из одного оператора, есть ошибки.
Следствие 2. В программе, состоящей из N операторов, есть по крайней мере N ошибок.
Следствие 3. В программе, состоящей из одного оператора, есть по крайней мере N ошибок.
Следствие 4. В любой программе содержится бесконечное число ошибок.
Следствие 5. Чтобы познать бесконечность, нужно быть не философом, а программистом.
Закон взаимосвязи программ и ошибок.
Для того, чтобы получить ошибки, надо написать программу.
Для того, чтобы получить программу, надо стараться избегать ошибок.
Следствие. Что бы вы ни делали - у вас будут получаться только ошибки.
Теорема обратимости программ и ошибок.
Всегда можно придумать программу, в которой будет не менее N ошибок.
И наоборот, всегда можно придумать ошибку, которая есть не менее, чем в N программах.
Закон пропорциональности.
Чем более программа необходима, тем больше в ней ошибок и наоборот.
Следствие 1. Совершенно ненужная программа ошибок не содержит.
Следствие 2. Ненужную программу невозможно создать ни за какие деньги.
Правило неоднозначности программ.
Даже две совершенно одинаковые программы содержат разные ошибки.
Народная примета. Сколько программистов - столько и программ.
Наблюдения системного администратора. Сколько программ - столько и неправильных результатов.
Фундаментальный закон Теории ошибок. На ошибках учатся.
Следствие 1. Программист, написавший программу, становится ученым.
Следствие 2. Чем больше программист делает ошибок, тем быстрее он становится ученым.
Следствие 3. По-настоящему ученый программист никогда не пишет правильных программ.
Замечание. На то он и ученый.
Указание начинающему программисту.
Если вы с первого раза сумели написать программу, в которой компилятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в компиляторе.
Наблюдение системного программиста.
Если начинающий программист написал программу, которая сразу заработала, значит она состоит только из комментариев.
Закон находимости ошибок.
Программист может обнаружить ошибку только в чужой программе или не обнаружить нигде.
Следствие 1. Администратор не может обнаружить ошибку.
Следствие 2. Ошибке не все равно кто ее обнаружит.
Следствие 3. Индивидуальная программистская деятельность невозможна.
Закон неприкосновенности ошибок.
Ошибку можно наблюдать, но нельзя исправить.
Теорема.
Исправление очевидной ошибки превращает ее в неочевидную (недоступную для наблюдения), причем этот процесс необратим.
Следствие 1. Любое активное действие, призванное улучшить программу, ухудшает программу.
Следствие 2. Пассивное наблюдение улучшает программу.
Следствие 3. Чем больше в программе очевидных ошибок, тем точнее можно предсказать результат ее работы.
Замечание. Программа без очевидных ошибок - неработоспособна.
Следствие 4. Программу проще написать заново, чем исправить.
Закон общественной полезности программиста.
Каждый человек на Земле должен быть программистом.
Совет начинающему программисту.
Никогда не исправляйте найденных ошибок, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.
Памятка программисту.
1) Не следует делить очевидные ошибки на постоянные и исчезающие, а следует делить их на обнаруженные ранее, обнаруженные ранее и забытые, и на новые, которые обычно являются хорошо забытыми старыми.
2) Объектное программирование - надежное средство для написания необнаруживаемых ошибок.
Закон невозможности совершения ошибки.
Получить нужную ошибку искусственным путем невозможно.
Доказательство: Программируя нужную ошибку, вы допустите другую ошибку, в корне меняющую превоначальный замысел.
Следствие. Программирование с необходимыми ошибками - искусство.
Теорема о невозможности доказательства правильности программ.
Нельзя доказать, что программа не имеет ошибок.
Док-во: Не нужно доказывать, что в программе есть ошибки.
Определение.
Компьютерный вирус - маленькая живучая ошибка, у которой в результате мутации появились ноги и рот.
Закон Гиппократа.
Настоящий программист, давший клятву Гиппократа, не станет мучать компьютерный вирус. Он либо сделает вид, что не узнал его, либо незаметно для окружающих быстро пересадит его в свой компьютер.
ЯЗЫК ОШИБОК
Определение. Будем называть языком ошибок правила, в обход которых пишутся программы.
Более точное определение. Будем называть языком ошибок высокого уровня правила, по которым пишутся программы на языках высокого уровня.
Следствие. Чем ниже уровень базового языка программирования, тем ошибки более машинно-ориентированы.
Синтаксис языка ошибок определяется синтаксисом базовой системы программирования.
Ошибки могут следовать друг за другом. От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).
Две последовательные ошибки можно объединить в одну, более сильную.
Не любую сильную ошибку можно разбить на две более слабых.
Неделимая ошибка называется устранимой. Установить, что ошибка неделима невозможно.
Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем лишь обращаться к ней по мере необходимости из любого места программы.
Передача управления от одной ошибки к другой может осуществляться как по определенному условию, так и безусловно (в последнем случае ошибка называется безусловной).
Ошибки могут образовывать циклы. Наиболее устойчивый из них бесконечный.
Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).
Ошибки могут размножаться.
Невероятно, но некоторые ошибки могут исчезать. К счастью - ненадолго.
Ошибки допускают многократное вложение друг в друга.
Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Свойство четности ошибок. Если написанная программа сработала правильно, то это значит, что во время ее работы выполнилось четное число ошибок или программист не понял задания.
Следствие. Чтобы получать правильные результаты, следует в каждой ветви программы предусмотреть четное число ошибок.
Наблюдение программиста, полезное для юмориста.
Ошибка, повторенная дважды, перестает быть ошибкой.
Некоторые ошибки сами могут содержать ошибки (не путать с четными ошибками). В такие минуты у неопытного программиста может сложиться впечатление, что его программа работает правильно. Опытные программисты активно используют такие моменты во время приемо-сдаточных испытаний.
Определение глобальности ошибок.
Ошибка называется глобальной, если поглощает все локальные по отношению к ней ошибки.
Закон экономии ошибок.
Чем более глобальную ошибку вы допустите, тем меньше будет общее число действующих ошибок.
Пример. Предположим в некоторой подпрограмме Sub1 вы допустили 257 ошибок. В головной программе Main вы допустили всего 13 ошибок, но лишь одна из них является глобальной по отношению к ошибкам процедуры Sub1, т.к. в результате ее срабатывания процедура Sub1 стирается из памяти и удаляется с диска.
Далее, пусть в операционной системе вашего компьютера есть две ошибки. Одна из них является глобальной по отношению к написанной вами программе Main, т.к. загружает вашу программу в виртуальное пространство, привязанное к несуществующей плате памяти.
И, наконец, в самом компьютере находится единственная, но наиболее глобальная по отношению к остальным ошибка в распайке фазового и земляного проводов, сводящая первоначальное число ошибок 257 к одной - глобальной и притом легко обнаруживаемой во время первого включения.
ВЗАИМОДЕЙСТВИЕ ОШИБОК С ОПЕРАЦИОННОЙ СИСТЕМОЙ
Во время исполнения ошибки имеют наивысший приоритет.
Прервать исполнение ошибки может только другая, более активная ошибка.
Запросы операционной системы к ошибкам ошибками могут игнорироваться.
Запросы ошибок к операционной системе игнорироваться не могут.
При работе с файлами ошибки могут пользоваться файловой системой ОС и ее ошибками.
На компьютере с параллельной архитектурой может выполняться несколько ошибок одновременно.
На компьютере с потоковой архитектурой очередная ошибка запускается по готовности на ее входах данных, переданных другими ошибками.
Машина искуственного интеллекта способна сама удовлетворять свою потребность в ошибках.
СИСТЕМНЫЕ ПРОГРАММЫ
Системные программы облегчают процесс написания прикладных программ и их ошибок.
Определение. Тестирование - это процесс нахождения ошибок в тесте.
Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.
Программа - отладчик, предназначенная для нахождения ошибок в любых программах (и в самой себе в том числе), содержит ошибки.
Закон полноты языка.
Если в языке программирования есть только одно тонкое место, делающее язык уязвимым для ошибок, то именно оно будет использоваться программистами наиболее часто.
Закон вызываемости подпрограмм.
Если в какой-либо подпрограмме есть ошибки, то эта подпрограмма будет вызываться наиболее часто. Если же какая-либо подпрограмма никогда не вызывается, значит она не содержит ошибок.
Объектно-ориентированный редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удается обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет.
Программа - транслятор, предназначенная для перевода программ с языка высокого уровня на машинный язык, при переводе сама порождает ошибки. Ошибки, которые содержались в исходном описании, переводятся безошибочно.
Аккуратные и опытные программисты делают глубокие и хорошо продуманные ошибки. Современные языки программирования предоставляют аккуратным и опытным программистам для этого широкие возможности.
Заключительный совет всем, кто до него добрался.
До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте.
Следствие. Хорошо продуманные ошибки залог надежной работы проектируемой программы.
Совет руководителю среднего звена.
В любой программе должны быть устранимые ошибки (т.е. хорошо отлаженные неправильные участки программы, изъятие которых не влечет за собой появления большого числа неустранимых ошибок), которые будут в определенной последовательности устраняться во время приемо-сдаточных испытаний для создания видимости отладки. Такие ошибки следует программировать наиболее тщательно.
Закон неизменности хороших привычек.
У каждого программиста есть любимые ошибки, которые он всегда делал, делает, и не собирается отказываться от них в будущем.
Укор программистам-мужчинам.
В программах, написанных программистами-женщинами, логических ошибок значительно меньше.
Закон массовых чисел.
Среди большого числа различных чисел всегда можно выбрать необходимое.
Следствие из закона массовых чисел.
Чтобы получить правильный результат необходимо распечатать как можно больше различных результатов и среди них выбрать необходимый.
Пример вероятного события.
Если в комнате, где установлено много терминалов, находится достаточное количество обезъян, то есть вероятность, что через достаточно большое, но конечное время компьютер будет оснащен операционной системой Unix.
ВЫВОД ИЗ ТЕОРИИ ОШИБОК
Положив, что энтропия программы, не содержащей ошибок, равна бесконечности (что справедливо, т.к. понятие "Правильная программа" абстрактное), можно создать необычайно устойчивую и стремящуюся к самоорганизации систему, если в ее основе будет лежать Теория ошибок. Понятно, что это единственный путь для создания программ, дающих предсказуемые результаты (и вообще, результаты).
Автор считает, что Теория ошибок послужит надежным фундаментом для бурно развивающейся кибернетики.
Вопрос 1: Как засунуть жирафа в холодильник?
Правильный ответ: Открыть холодильник, засунуть туда жирафа, закрыть холодильник.
Этот вопрос позволяет выяснить, нет ли у вас склонности выискивать чересчур сложные решения для простых задач.
Вопрос 2: Как засунуть в холодильник слона?
Неправильный ответ: Открыть холодильник, засунуть туда слона, закрыть холодильник.
Правильный ответ: Открыть холодильник, вынуть оттуда жирафа, засунуть туда слона, закрыть холодильник.
Этот вопрос позволяет выяснить, способны ли вы при принятии решений учитывать последствия ваших предыдущих действий.
Вопрос 3: Лев созвал всех зверей на собрание. Явились все, кроме одного. Что это за зверь?
Правильный ответ: Это слон. Он же в холодильнике, помните?
Этот вопрос проверяет вашу память.
Вопрос 4: Вам нужно пересечь широкую реку, которая кишит крокодилами. Как вы это сделаете?
Правильный ответ: Вплавь. Ведь крокодилы-то все на собрании у льва.
Этот вопрос позволяет выяснить, способны ли вы учиться на собственных ошибках.
Так вот - в программировании главное помнить про слона в холодильнике.
я не программист ни разу и даже не айтишник. но по моему самый геморрой в программировании это не тот простой алгоритм действий, а всевозможные условия к какой нибудь самой незначительной процедуре. даже для самой простой программы можно кучу лазеек, багов и геморроя нарыть если не поназадавать условия, типа что если открыл хлебницу, а там хлеба нет - все, капец программе, или есть, но уже нарезанный... программа в акуе. или нож не той стороной взял. на них свихнуться можно.
))) Нет. я пытался, честно и самостоятельно освоить ВБА (так как всегда не хватает в работе какой то волшебной палочки - а может просто лень многое делать и проверять, хочется чтобы все само делалось). скачал тучу книг. и вскоре понял, что прежде чем я создам чето полезное и самое главное работоспособное, пройдет не один год. меня раз в месяц в программисты тянет, полазаю по форумам, почитаю, пойму что ни хрена не пойму - отпускает.
автор наверно начинающий программист или не оный вообще
"каждый язык создан для определенных задач и не всегда одну и ту же задачу можно реализовать на разных языках" - в корне неверно, все равно всё в итоге транслируется в инструкции процессору, что значит всё что есть в высокоуровневых языках реализовано через низкоуровневые и оформлено в те "процедуры" (видать делфист статью писал) которые использует высокоуровневый
какраз и говорится после упоминания об уровнях языков
"Для написания программ используются языки программирования, которые разделяют на низкоуровневые, высокоуровневые и сверхвысокоуровневые, а какой из них какой и чем отличается станет ясно чуть позже. Но забегая вперед добавлю, что каждый язык создан для определенных задач и не всегда одну и ту же задачу можно реализовать на разных языках."
ничего не сказано о разных языках, только об уровнях.
чем именно смешной? или не процессор всё выполняет?) и ждава и питон работают в итоге одинаково) под каждую платформу своя реализация либ, которые по факту и есть набор инструкций.
или всё не так и проц напрямую понимает код джавы и питона?))
вам бесполезно что-либо объяснять, если вы не тролль, то я не завидую тем людям, с которыми вы работаете
думаете что правы, хотя неправы - ваше дело, думайте как хотите...
519 комментариев
10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
ТЕОРИЯ ОШИБОК
От автора
Теория ошибок является до смешного кратким введением в программирование. Все основные и второстепенные положения Теории проверены автором на практике и на коллегах, за что отдельное спасибо их вдовам и сиротам.
Эпиграф:
"Ошибки так же неисчерпаемы, как и атом"
Приписывается Карлу Марксу и его подельникам
Аксиома. В любой программе есть ошибки.
Следствие 1. В программе, состоящей из одного оператора, есть ошибки.
Следствие 2. В программе, состоящей из N операторов, есть по крайней мере N ошибок.
Следствие 3. В программе, состоящей из одного оператора, есть по крайней мере N ошибок.
Следствие 4. В любой программе содержится бесконечное число ошибок.
Следствие 5. Чтобы познать бесконечность, нужно быть не философом, а программистом.
Закон взаимосвязи программ и ошибок.
Для того, чтобы получить ошибки, надо написать программу.
Для того, чтобы получить программу, надо стараться избегать ошибок.
Следствие. Что бы вы ни делали - у вас будут получаться только ошибки.
Теорема обратимости программ и ошибок.
Всегда можно придумать программу, в которой будет не менее N ошибок.
И наоборот, всегда можно придумать ошибку, которая есть не менее, чем в N программах.
Закон пропорциональности.
Чем более программа необходима, тем больше в ней ошибок и наоборот.
Следствие 1. Совершенно ненужная программа ошибок не содержит.
Следствие 2. Ненужную программу невозможно создать ни за какие деньги.
Правило неоднозначности программ.
Даже две совершенно одинаковые программы содержат разные ошибки.
Народная примета. Сколько программистов - столько и программ.
Наблюдения системного администратора. Сколько программ - столько и неправильных результатов.
Фундаментальный закон Теории ошибок. На ошибках учатся.
Следствие 1. Программист, написавший программу, становится ученым.
Следствие 2. Чем больше программист делает ошибок, тем быстрее он становится ученым.
Следствие 3. По-настоящему ученый программист никогда не пишет правильных программ.
Замечание. На то он и ученый.
Указание начинающему программисту.
Если вы с первого раза сумели написать программу, в которой компилятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в компиляторе.
Наблюдение системного программиста.
Если начинающий программист написал программу, которая сразу заработала, значит она состоит только из комментариев.
Закон находимости ошибок.
Программист может обнаружить ошибку только в чужой программе или не обнаружить нигде.
Следствие 1. Администратор не может обнаружить ошибку.
Следствие 2. Ошибке не все равно кто ее обнаружит.
Следствие 3. Индивидуальная программистская деятельность невозможна.
Закон неприкосновенности ошибок.
Ошибку можно наблюдать, но нельзя исправить.
Теорема.
Исправление очевидной ошибки превращает ее в неочевидную (недоступную для наблюдения), причем этот процесс необратим.
Следствие 1. Любое активное действие, призванное улучшить программу, ухудшает программу.
Следствие 2. Пассивное наблюдение улучшает программу.
Следствие 3. Чем больше в программе очевидных ошибок, тем точнее можно предсказать результат ее работы.
Замечание. Программа без очевидных ошибок - неработоспособна.
Следствие 4. Программу проще написать заново, чем исправить.
Закон общественной полезности программиста.
Каждый человек на Земле должен быть программистом.
Совет начинающему программисту.
Никогда не исправляйте найденных ошибок, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.
Памятка программисту.
1) Не следует делить очевидные ошибки на постоянные и исчезающие, а следует делить их на обнаруженные ранее, обнаруженные ранее и забытые, и на новые, которые обычно являются хорошо забытыми старыми.
2) Объектное программирование - надежное средство для написания необнаруживаемых ошибок.
Закон невозможности совершения ошибки.
Получить нужную ошибку искусственным путем невозможно.
Доказательство: Программируя нужную ошибку, вы допустите другую ошибку, в корне меняющую превоначальный замысел.
Следствие. Программирование с необходимыми ошибками - искусство.
Теорема о невозможности доказательства правильности программ.
Нельзя доказать, что программа не имеет ошибок.
Док-во: Не нужно доказывать, что в программе есть ошибки.
Определение.
Компьютерный вирус - маленькая живучая ошибка, у которой в результате мутации появились ноги и рот.
Закон Гиппократа.
Настоящий программист, давший клятву Гиппократа, не станет мучать компьютерный вирус. Он либо сделает вид, что не узнал его, либо незаметно для окружающих быстро пересадит его в свой компьютер.
Удалить комментарий?
Удалить Отмена10 лет назад
Определение. Будем называть языком ошибок правила, в обход которых пишутся программы.
Более точное определение. Будем называть языком ошибок высокого уровня правила, по которым пишутся программы на языках высокого уровня.
Следствие. Чем ниже уровень базового языка программирования, тем ошибки более машинно-ориентированы.
Синтаксис языка ошибок определяется синтаксисом базовой системы программирования.
Ошибки могут следовать друг за другом. От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).
Две последовательные ошибки можно объединить в одну, более сильную.
Не любую сильную ошибку можно разбить на две более слабых.
Неделимая ошибка называется устранимой. Установить, что ошибка неделима невозможно.
Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем лишь обращаться к ней по мере необходимости из любого места программы.
Передача управления от одной ошибки к другой может осуществляться как по определенному условию, так и безусловно (в последнем случае ошибка называется безусловной).
Ошибки могут образовывать циклы. Наиболее устойчивый из них бесконечный.
Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).
Ошибки могут размножаться.
Невероятно, но некоторые ошибки могут исчезать. К счастью - ненадолго.
Ошибки допускают многократное вложение друг в друга.
Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Свойство четности ошибок. Если написанная программа сработала правильно, то это значит, что во время ее работы выполнилось четное число ошибок или программист не понял задания.
Следствие. Чтобы получать правильные результаты, следует в каждой ветви программы предусмотреть четное число ошибок.
Наблюдение программиста, полезное для юмориста.
Ошибка, повторенная дважды, перестает быть ошибкой.
Некоторые ошибки сами могут содержать ошибки (не путать с четными ошибками). В такие минуты у неопытного программиста может сложиться впечатление, что его программа работает правильно. Опытные программисты активно используют такие моменты во время приемо-сдаточных испытаний.
Определение глобальности ошибок.
Ошибка называется глобальной, если поглощает все локальные по отношению к ней ошибки.
Закон экономии ошибок.
Чем более глобальную ошибку вы допустите, тем меньше будет общее число действующих ошибок.
Пример. Предположим в некоторой подпрограмме Sub1 вы допустили 257 ошибок. В головной программе Main вы допустили всего 13 ошибок, но лишь одна из них является глобальной по отношению к ошибкам процедуры Sub1, т.к. в результате ее срабатывания процедура Sub1 стирается из памяти и удаляется с диска.
Далее, пусть в операционной системе вашего компьютера есть две ошибки. Одна из них является глобальной по отношению к написанной вами программе Main, т.к. загружает вашу программу в виртуальное пространство, привязанное к несуществующей плате памяти.
И, наконец, в самом компьютере находится единственная, но наиболее глобальная по отношению к остальным ошибка в распайке фазового и земляного проводов, сводящая первоначальное число ошибок 257 к одной - глобальной и притом легко обнаруживаемой во время первого включения.
Удалить комментарий?
Удалить Отмена10 лет назад
Во время исполнения ошибки имеют наивысший приоритет.
Прервать исполнение ошибки может только другая, более активная ошибка.
Запросы операционной системы к ошибкам ошибками могут игнорироваться.
Запросы ошибок к операционной системе игнорироваться не могут.
При работе с файлами ошибки могут пользоваться файловой системой ОС и ее ошибками.
На компьютере с параллельной архитектурой может выполняться несколько ошибок одновременно.
На компьютере с потоковой архитектурой очередная ошибка запускается по готовности на ее входах данных, переданных другими ошибками.
Машина искуственного интеллекта способна сама удовлетворять свою потребность в ошибках.
СИСТЕМНЫЕ ПРОГРАММЫ
Системные программы облегчают процесс написания прикладных программ и их ошибок.
Определение. Тестирование - это процесс нахождения ошибок в тесте.
Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.
Программа - отладчик, предназначенная для нахождения ошибок в любых программах (и в самой себе в том числе), содержит ошибки.
Закон полноты языка.
Если в языке программирования есть только одно тонкое место, делающее язык уязвимым для ошибок, то именно оно будет использоваться программистами наиболее часто.
Закон вызываемости подпрограмм.
Если в какой-либо подпрограмме есть ошибки, то эта подпрограмма будет вызываться наиболее часто. Если же какая-либо подпрограмма никогда не вызывается, значит она не содержит ошибок.
Объектно-ориентированный редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удается обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет.
Программа - транслятор, предназначенная для перевода программ с языка высокого уровня на машинный язык, при переводе сама порождает ошибки. Ошибки, которые содержались в исходном описании, переводятся безошибочно.
Аккуратные и опытные программисты делают глубокие и хорошо продуманные ошибки. Современные языки программирования предоставляют аккуратным и опытным программистам для этого широкие возможности.
Заключительный совет всем, кто до него добрался.
До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте.
Следствие. Хорошо продуманные ошибки залог надежной работы проектируемой программы.
Совет руководителю среднего звена.
В любой программе должны быть устранимые ошибки (т.е. хорошо отлаженные неправильные участки программы, изъятие которых не влечет за собой появления большого числа неустранимых ошибок), которые будут в определенной последовательности устраняться во время приемо-сдаточных испытаний для создания видимости отладки. Такие ошибки следует программировать наиболее тщательно.
Закон неизменности хороших привычек.
У каждого программиста есть любимые ошибки, которые он всегда делал, делает, и не собирается отказываться от них в будущем.
Укор программистам-мужчинам.
В программах, написанных программистами-женщинами, логических ошибок значительно меньше.
Закон массовых чисел.
Среди большого числа различных чисел всегда можно выбрать необходимое.
Следствие из закона массовых чисел.
Чтобы получить правильный результат необходимо распечатать как можно больше различных результатов и среди них выбрать необходимый.
Пример вероятного события.
Если в комнате, где установлено много терминалов, находится достаточное количество обезъян, то есть вероятность, что через достаточно большое, но конечное время компьютер будет оснащен операционной системой Unix.
ВЫВОД ИЗ ТЕОРИИ ОШИБОК
Положив, что энтропия программы, не содержащей ошибок, равна бесконечности (что справедливо, т.к. понятие "Правильная программа" абстрактное), можно создать необычайно устойчивую и стремящуюся к самоорганизации систему, если в ее основе будет лежать Теория ошибок. Понятно, что это единственный путь для создания программ, дающих предсказуемые результаты (и вообще, результаты).
Автор считает, что Теория ошибок послужит надежным фундаментом для бурно развивающейся кибернетики.
Валерий Тихонов-НеТОТ
www.provod.comwww.provod.com
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удачи всем.
Удалить комментарий?
Удалить Отмена10 лет назад
Правильный ответ: Открыть холодильник, засунуть туда жирафа, закрыть холодильник.
Этот вопрос позволяет выяснить, нет ли у вас склонности выискивать чересчур сложные решения для простых задач.
Вопрос 2: Как засунуть в холодильник слона?
Неправильный ответ: Открыть холодильник, засунуть туда слона, закрыть холодильник.
Правильный ответ: Открыть холодильник, вынуть оттуда жирафа, засунуть туда слона, закрыть холодильник.
Этот вопрос позволяет выяснить, способны ли вы при принятии решений учитывать последствия ваших предыдущих действий.
Вопрос 3: Лев созвал всех зверей на собрание. Явились все, кроме одного. Что это за зверь?
Правильный ответ: Это слон. Он же в холодильнике, помните?
Этот вопрос проверяет вашу память.
Вопрос 4: Вам нужно пересечь широкую реку, которая кишит крокодилами. Как вы это сделаете?
Правильный ответ: Вплавь. Ведь крокодилы-то все на собрании у льва.
Этот вопрос позволяет выяснить, способны ли вы учиться на собственных ошибках.
Так вот - в программировании главное помнить про слона в холодильнике.
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена7 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
"каждый язык создан для определенных задач и не всегда одну и ту же задачу можно реализовать на разных языках" - в корне неверно, все равно всё в итоге транслируется в инструкции процессору, что значит всё что есть в высокоуровневых языках реализовано через низкоуровневые и оформлено в те "процедуры" (видать делфист статью писал) которые использует высокоуровневый
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена10 лет назад
"Для написания программ используются языки программирования, которые разделяют на низкоуровневые, высокоуровневые и сверхвысокоуровневые, а какой из них какой и чем отличается станет ясно чуть позже. Но забегая вперед добавлю, что каждый язык создан для определенных задач и не всегда одну и ту же задачу можно реализовать на разных языках."
ничего не сказано о разных языках, только об уровнях.
Удалить комментарий?
Удалить Отмена10 лет назад
или всё не так и проц напрямую понимает код джавы и питона?))
Удалить комментарий?
Удалить Отмена10 лет назад
думаете что правы, хотя неправы - ваше дело, думайте как хотите...
Удалить комментарий?
Удалить Отмена10 лет назад
Удалить комментарий?
Удалить Отмена