Cтраница 2
Промышленная технология проектирования и структурирование КП способствуют сокращению количества ошибок и созданию надежных и правильных программ. Введением информационной, программной и временной избыточности можно значительно повысить надежность функционирования разрабатываемых программ. [16]
Имеется существенное различие между процессами доработки неправильно работающей программы и повышения эффективности правильной программы путем строгих процедур пошагового совершенствования и реорганизации. В первом случае структура программы постепенно ухудшается, а вероятность новых отказов увеличивается. Во втором же случае лишь увеличивается эффективность программы без снижения ее надежности. [17]
Пользуясь практическими принципами и методами структурного программирования, можно научиться не только создавать правильные программы, но и доказывать их правильность, причем не экспериментально, а путем логических рассуждений. При этом программа обычно выполняется правильно с первого испытания. У профессионального программиста ошибки в логической структуре программы крайне редки, что объясняется активной ролью профессионалов в процессе разработки программы. Объективно программам не присущи ошибки, если только последние не являются следствием влияния ошибок в смежных программах. Следовательно, ошибки в программы могут вноситься только их разработчиками. [18]
Кроме переупорядочивания существуют и другие, более общие методы предотвращения зацикливания, способствующие получению процедурно правильных программ. [19]
Семантика определяет, выполнение каких действий ( над внутренними объектами) ожидается от вычислителя при исполнении правильной программы. [20]
Основная задача, решение которой должно предшествовать постановке расчетов на электронной машине, состоит в разработке правильной программы вычисления наиболее быстрым путем и с наименьшей загрузкой памяти электронной машины. Разработкой таких программ могут заниматься лишь лица, получившие специальную подготовку. Некоторые дополнительные замечания о программировании рентгеноструктурных задач будут сделаны в другом разделе ( стр. Однако в целом эти вопросы выходят за рамки настоящей книги. [21]
Однако, для проведения таких опытов требуется как построение квантовых компьютеров, так и для разработки правильных программ искусственного интеллекта. В объяснении работы квантовых компьютеров я, где это было необходимо, предполагал онтологию Эверетта. Конечно, эти объяснения всегда можно перевести в обычную интерпретацию, но их объясняющая сила при этом полностью теряется. Предположим, например, что квантовый компьютер был запрограммирован так, как это было описано в задаче о фондовой бирже. Каждый день он получает различные данные. Интерпретация Эверетта хорошо объясняет, как ведет себя компьютер, если он передал подзадачи копиям самого себя в других мирах. Как обычная интерпретация объяснит наличие правильного ответа в те дни, когда компьютер успешно выполняет работу двух процессоро-дней. Где этот ответ вычислен. [22]
Если не известно, что программа должна делать или каким образом должен работать процессор, естественно нельзя написать и правильную программу. Таким образом, мы предполагаем полностью известными спецификации и функционирование процессора. [23]
Произошло так потому, что в алгоритмы управления кровяным давлением оказались включенными сигналы, всего один раз совпавшие с неприятным воздействием, чего при правильной программе работы нервной системы не должно быть. [24]
Совершенно недостаточно держать в одной руке официальное описание некоторого языка программирования, открытое на соответствующей странице, а в другой руке - ручку или карандаш, чтобы писать синтаксически правильные программы на этом языке программирования. Необходимо также выполнять эти программы на реальной ЭВМ, исправлять любые имеющиеся в них ошибки и убеждаться в том, что эти программы надежны. [25]
Авторы предполагают, что читатель приступает к изучению предмета этой книги с полным пониманием своих задач и методов их математического описания; мы покажем такому читателю, как перевести математическую формулу в последовательность арифметических операций и из этой последовательности в правильную программу для ЭЦВМ; после этого мы предоставим ему поступать с результатами по собственному усмотрению. [26]
Доказательства правильности не обнаруживают нежелательных побочных эффектов или посторонних результатов. Правильная программа может все же иметь ошибочный побочный эффект, например разрушение глобальной области данных. [27]
Методы верификации позволяют проектировщику и разработчику операционной систем-ы гарантировать правильность создаваемого программного изделия. Правильные программы могут оказаться слабыми программами, если в них допущены просчеты, которые приводят к нарушению защиты от несанкционированного доступа. [28]
Однако программа ( с помощью процедуры Р2) вычислит только г: 24, и, следовательно, она не является ни частично правильной, ни полной. Интуитивно неприемлемо, чтобы ранее правильная программа становилась неправильной лишь в результате постановки другого запроса при тех же самых утверждениях, описывающих проблемную область. [29]
Программа встроена в постоянное запоминающее устройство, поэтому устранение ошибок обходится дорого, так как для этой цели необходимо заменить память в автоматах. Таким образом, создание правильной программы имеет важную экономическую подоплеку. [30]