Cтраница 3
Если в описании функции встречается присваивание нелокальной переменной или переменной, являющейся параметром этой функции, то это называется побочным эффектом. При этом часто оказывается затуманенным назначение программы и значительно усложняется ее верификация. В некоторых реализациях языка Паскаль побочные эффекты могут запрещаться. Поэтому пропадает всякое желание Пользоваться такими функциями. [31]
Прежде всего, следует в общих чертах сформулировать назначение документируемых программ. Например: Здесь описаны программы, которые используются при присоединении к каталогу новых имен. Затем перечисляются названия программ, сопровождаемые подробными пояснениями. [32]
Обычно текст программы начинают оператором комментария REM, поясняющим назначение программы. Оператор REM - невыполняемый оператор, он не оказывает никакого влияния на программу. Она может содержать произвольное число комментариев REM, ее поясняющих. [33]
Выше мы уже писали, что каждая задача может быть решена с помощью разных программ, отличающихся и по времени выполнения и по числу операторов. Это может зависеть как от квалификации программиста, так и от назначения программы и параметров ЭВМ. [34]
Статья призывает к адекватному документированию программ, с тем чтобы анализирующий их человек мог легко определять основное их назначение. Указывается, что полный комплект документации программного обеспечения должен отображать целый ряд факторов, таких, как назначение программы, полный набор блок-схем, полный набор входных и выходных данных, включая контрольные примеры и тесты, множество рабочих инструкций для оператора ЭВМ. Исследованы и некоторые другие аспекты качества программных средств. [35]
Вспомогательные программы ( утилиты) помогают в организации и обслуживании данных в системе. Предусмотрены три класса утилит, определяемые функциями, которые программы выполняют, и способом, которым они управляются. Назначение программ рассматривается ниже по классам: независимые, для наборов данных и системные. [36]
Утилиты ( вспомогательные программы) помогают в организации и обслуживании данных в системе. Предусмотрены три класса утилит, соответствующие выполняемым функциям и способу управления ими. Ниже приводится назначение программ каждого класса. [37]
Основные компоненты документации. [38] |
ЭВМ прозрачно для пользователя. Пользователь должен знать, как работает устройство, а то, что им управляет ЭВМ, несущественно. В руководстве для пользователя нужно четко сформулировать назначение программы и подчеркнуть ее ограничения. Следует точно описать формат и временные соотношения входной информации. Если выход не очевиден или не представлен в печатной или графической формах, его тоже следует пояснить. Когда пользователю нужно кое-что знать о быстродействии или точности работы программы, может потребоваться описание основ теории, которое, конечно, зависит от квалификации пользователя. [39]
КП комментируется не каждое предложение текста. Для комментирования жаждой программы вводится около 720 символов. Комментарии в среднем короткие и содержат всего 34 символа, при этом несколько строк занимает заглавный комментарий с кратким описанием назначения программы. [40]
Раздел идентификации имеет заголовок: РАЗДЕЛ ИДЕНТИФИКАЦИИ. В разделе идентификации указывается имя программы и дается некоторая справочная информация о программе. Этот раздел служит в основном для документации, так как позволяет указать, например, автора программы, учреждение, в котором разрабатывается программа, назначение программы. [41]
Программисты вставляют в код комментарии для документирования программ и для того, чтобы сделать их более удобочитаемыми. Комментарии не оказывают никакого влияния на работу компьютера во время исполнения программы. Компилятор С просто игнорирует комментарии, не создавая для них никакого машинного объектного кода. Комментарий Первая программа на С просто объясняет назначение программы. Комментарии также помогают другим людям прочитать и понять вашу программу, однако слишком многословные комментарии могут, наоборот, затруднить ее прочтение. [42]
Затраты времени Гм на исполнение программы в автоматическом режиме также пропорциональны длине неразветвленной программы, и в этом случае при обычно малых затратах времени Тл критерием оптимальности, соответствующим минимуму суммы Тк Тя, является минимальная длина программы. Уменьшение длины программы часто удается достичь рациональным выбором математической модели, метода и алгоритма решения задачи, но более эффективно использование обращений к подпрограммам и итерационнных циклов. При решении многих задач ( например, решении нелинейных уравнений или численной оптимизации) применение итерационных циклов принципиально необходимо, но на выполнение переходов в программе затрачивается значительная часть машинного времени. Выбор оптимального решения в таких случаях зависит от характера задачи и назначения программы, причем для решения одной и той же задачи могут существовать различные критерии оптимальности. Так, если программа предназначена для многократного исполнения в процессе решения задачи ( например, при вычислении функции в заданном интервале аргумента), целесообразно минимизировать затраты машинного времени: в этом случае составляющая Тм будет преобладающей. Однако, если та же программа предназначена для однократного или во всяком случае небольшого числа исполнений в процессе решения задачи, составляющая Тк может оказаться преобладающей, и в этом случае целесообразно минимизировать длину программы, используя для этого все средства входного языка. Примером могут служить программы вычисления многочленов действительного аргумента с малыми затратами машинного времени при большой длине и большими затратами времени при малой длине [23], которые целесообразно использовать соответственно при многократном и однократном вычислении многочлена в процессе решения задачи. [43]
Возможность конфликтов при использовании общих данных трудно учесть при распределении программ по процессорам. Для этого, в принципе, необходимо построить матрицу связности различных программ общими данными и при распределении исключать назначения на одновременное исполнение процессорами программ, использующих одни и те же глобальные переменные. Однако в большинстве программ необходимость блокировки семафорами может требоваться только в короткие интервалы времени после того, как все данные преобразованы и подготовлены в оперативной памяти для записи в память глобальных переменных. Поэтому более целесообразными могут быть оперативный учет включения семафоров и независимое от них назначение программ процессорам. [44]
Программа не должна содержать лишних строк и фрагментов. Это, конечно, не означает, что текст должен все время оставаться неизменным. Хороший программист знает, что не всегда его программа получается высококачественной. Главное же назначение программы - выполнять ту работу, которая от нее ожидается. [45]