Большая техническая энциклопедия
0 1 3 5 8
D N
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
Н- НА НЕ НИ НО НР НУ

Наглядность - программа

 
Наглядность программы часто можно улучшить, использовав операторную нотацию. Операторы бывают инфиксные, префиксные и постфиксные.
Для наглядности программы могут быть использованы пробелы, добавляемые в произвольном количестве к одиночному пробелу между словами, поскольку компилятор к ним нечувствителен. В операторе DECLARE можно специфицировать любо необходимое количество переменных.
Синтаксис повышает наглядность программы, если синтаксические различия отражают лежащие в основе семантические различия. Таким образом, программные конструкции, имеющие одинаковое назначение, должны выглядеть одинаково, а имеющие в корне различное назначение - совершенно по-разному. Например, различие между условным ветвлением, итерацией и управляющей структурой goto выявляется в большинстве языков путем использования различных типов инструкций с различной синтаксической структурой.
Для повышения наглядности программы в нее могут вставляться пробелы. При этом следует руководствоваться следующими правилами.
Если это не нарушает наглядности программы, каждая часть последовательности может быть записана в одну строку.
Их использование целесообразно для обеспечения наглядности программы.
Поэтому применение в файлах-сценариях символа переноса строки улучшает наглядность программ.
Поскольку комментарии печатаются на листинге, они повышают наглядность программы и качество программной документации.
Очевидно, однако, что в этом случае наглядность программы заметно снижается ( по записи X - f4 в тексте программы довольно трудно догадаться о чем здесь идет речь), поэтому данной возможностью автокода не следует злоупотреблять.
Поэтому применение в файлах-сценариях символа переноса строки улучшает наглядность программ.
Итак, язык динамо обладает рядом преимуществ: наглядностью программы, произвольным порядком соотношений, легкостью использования графиков при вводе и выводе информации. Есть и другие преимущества.
Использование буквальных констант, кроме всего прочего, значительно повышает наглядность программы, поскольку по самой записи команды видно значение используемой в ней константы.
Для обеспечения удобства доступа к данным, а тем самым обеспечения компактности и наглядности программ, обычно используются различные структуры данных. При этом различают структуры поименованных и непоименованных данных.
Употребление операторов перехода с точки зрения сторонников структурного программирования неоправданно и приводит к потере наглядности программы.
Употребление операторов перехода, с точки зрения сторонников структурного программирования, неоправдано и приводит к потере наглядности программы.

Пробелы в этом поле игнорируются программой-транслятором; их можно свободно оставлять в любых местах для увеличения наглядности программы. Оператор вовсе не должен начинаться точно с 7 - й колонки: напротив, некоторые программисты предпочитают оставлять пробел перед началом записи оператора, чтобы было ясно видно символ продолжения в 6 - й колонке. Некоторые программисты оставляют пробелы по обеим сторонам символов арифметических операций, что облегчает чтение операторов.
В операторах ФОРТРАНа допускаются пробелы, которые пользователь может размещать по своему усмотрению, имея в виду наглядность программы.
Хотя использование подпрограмм - внутренних и внешних процедур, вызываемых из главной процедуры, ускоряет отладку, увеличивает наглядность программы и соответствует требованиям структурного программирования, не следует вводить слишком короткие ( в несколько операторов) процедуры, так как одно выполнение оператора CALL по времени эквивалентно, напри. Затраты времени обращения к внешним и внутренним процедурам одинаковы.
Использование комментариев и содержательно осмысленных ( мнемонических) имен - также весьма простой и мощный прием в деле улучшения наглядности программы.
Как видно, использование ссылки на счетчик размещения при составлении программы позволяет избежать появления в ней лишних меток и улучшает наглядность программы.
Так как две версии программы калькулятор функционально тождественны, за исключением возможности использования символа П, мы будем интересоваться в основном различиями в наглядности программ. Первая версия программы написана таким образом, что работа любой процедуры могла быть прослежена по тексту только этой процедуры, если нам известно, что делают процедуры, вызываемые из данной процедуры. Это особенно важное преимущество, проявляющееся в длинной программе. Однако калькулятор - это небольшая программа, и вторая версия делает ее функциональную структуру яснее, так как здесь меньше повторений н меньше имен переменных, которые необходимо запоминать. Тот факт, что, например, процедура читатьсла-гаемое возвращает значение введенного слагаемого как параметр, но имеет побочный эффект, влияя на переменные следсимвол и следпозиция, точно описывает ее функцию в программе.
Использование звездочки в качестве имени операнда позволяет, например, уменьшить число меток в программе ( а обилие меток затрудняет их подбор и ухудшает наглядность программы), ибо использование имени позволяет адресовать объекты относительно данной команды. В частности, это имя можно использовать для ссылок на объекты программы, близкие по памяти к данной команде. Так, если в команде типа RX ( длиной в четыре байта) надо сослаться на следующую по порядку команду, то для этой цели можно использовать выражение 4, так как ее адрес на 4 единицы больше адреса данной команды, который и является значением имени в этой команде. Следует, однако, отметить, что использование имени для этих целей требует большой осторожности, так как при этом надо точно знать длины команд и правила их размещения в памяти.
Отметим в заключение, что описанная выше программная система эмуляции структурно-аналоговых схем ЭКРАН использовалась при имитационном моделировании различных подсистем модели живой клетки ( на ЦВМ ЕС-1022) [9] и продемонстрировала высокую степень наглядности синтезированных программ и удобства в работе. Осуществляемый в настоящее время перевод ЭКРАНа на язык программирования Си в операционной системе ИНМОС ( совместимой с Unix) для ЦВМ типа СМ-1420 позволит не только расширить потенциальную сферу его применения и обеспечить дополнительные удобства в работе ( в частности, ввести диалоговый режим), но и перейти в дальнейшем к реализации его на микропроцессорной технике, имея в виду перспективную цель - построение распараллеленной специализированной вычислительной системы нового поколения для моделирования структурно-аналоговых схем.
Для указания в командах требуемых операндов при символическом программировании вместо адресов операндов употребляются имена этих операндов - это позволяет не только сделать программу независимой от конкретного распределения памяти, но и существенно улучшить наглядность программы. Сказанное выше относится не только к операндам, участвующим в выполнении какой-либо операции в арифметическом устройстве, но также и к самим командам: команды символической программы просто выписываются подряд без указания номеров ячеек памяти, в которых они будут храниться. С этой целью метками снабжаются и константы, запасаемые в программе.
Самыми крупными элементами, из которых должна состоять ПЛ-программа, являются блоки. Концепция блоков обеспечивает наглядность программы, возможность параллельного составления блоков, являющихся частями одной программы. Наконец, что очень важно, блоки используются для локализации областей действия имен, распределения памяти для переменных с учетом рационального ее использования, а также для управления последовательностью выполнения вычислительного процесса.
Характерной особенностью программы на языке ПЛ / 1 является ее блочная структура. Использование блоков обеспечивает наглядность программы, дает возможность параллельного программирования отдельных ее частей, позволяет локализовать область действия имен переменных и повысить эффективность распределения памяти. Блоки могут быть двух типов - обычные и процедурные.
Схема программы с модульной структурой ( стрелками указано направление передач управления между модулями.| Пример записи фортранного текста бланке. Каждый модуль состоит из операторов и комментариев. Комментарии используются для повышения наглядности программ, не влияя на характер ее выполнения. Оператор является законченной фразой языка. В каждой строке бланка выделены 72 позиции, пронумерованные слева направо от 1 - й до 72 - й, в каждой из которых может быть записан один символ. Позиции объединяются в п о л я, каждое из которых имеет свое назначение. Например, наличие буквы С в позиции 1 какой-либо строки служит признаком того, что остальной текст, записанный в этой строке, является комментарием. Позиции 1 - 5 записи оператора образуют поле метки.
Все компоненты, используемые для создания указанных ранее элементов интерфейса, хорошо известны нам по предыдущим программам. Но, помимо них, для наглядности программы хорошо было бы, чтобы в ее окне был изображен тот самый геометрический объект, характеристики которого мы рассчитываем. Поэтому в окно программы желательно поместить изображение параллелепипеда.
Операторная запись позволяет программисту приспособить синтаксис программ к своим конкретным нуждам. С помощью операторов можно значительно повысить наглядность программ.

Каждый модуль состоит из предложений и комментариев. Как обычно, комментарии используются для повышения наглядности программы, не влияя на характер ее выполнения.
К тому же это наиболее легкий и дешевый способ повышения наглядности программы, так как он не требует ни значительных умственных усилий от программиста, ни дополнительных затрат машинного времени.
Зги две записи совершенно эквивалентны, причем закрывающая скобка после у не завершает список параметров. Такие конструкции между параметрами не влияют на выполнение алгоритма и употребляются только для повышения наглядности программы.
Пределы диапазонов нужно выбирать очень тщательно. Если диапазон задан в слишком широких пределах, то от этого в целом страдает лишь наглядность программы: читающий не знает, что делать с переменной, он не сразу понимает ее назначение. С такими трудностями понимания может, между прочим, столкнуться и сам автор, причем спустя всего лишь несколько дней или недель после составления программы. Вы даже не представляете, как быстро забываются подробности любой программы.
Команда MOV использует инструкцию BIC как литерал. Использование такого приема, хотя он может показаться удобным и эффективным, не рекомендуется, поскольку он ухудшает наглядность программы и может порождать ошибки при изменении инструкции BIG или режима адресации одного из операндов.
Как уже отмечалось, текст программы разбивается на строки, в терминах которых осуществляются добавление слоев и коррекция. При выборе принципа деления текста на строки следует учитывать возможные функции строк: связь с исходным носителем, обеспечение наглядности программы, связь с распечаткой.
Для идентификаторов широко применяется следующий простой синтаксис - цепочки букв и цифр, начинающиеся с буквы. Ограничения длины, например ограничение до 6 литер в Фортране, приводят к тому, что часто приходится пользоваться идентификаторами с невыразительной мнемоникой, от чего сильно страдает наглядность программы.
Символическое кодирование является первой ступенью автоматизации программирования. Оно должно полностью устранить кодирование на машинном языке, так как имеет перед ним ряд неоспоримых преимуществ: мнемонические названия команд и удобный формат их написания; символическая адресация; возможность автоматической трансляции; легкость внесения изменения с целью отладки или корректировки; уменьшение количества ошибок и их автоматическое обнаружение и даже исправление; наглядность программы; возможность относительно независимого кодирования различными лицами частей программы и последующего объединения; более высокую производительность труда программиста; низкие общие затраты машинного времени на получение отлаженной программы.
Вероятность появления ошибок в программе, особенно сложной и длинной, очень велика, и организация ее функционирования представляет собой трудную задачу. Бессистемное написание операторов, наличие множества перекодов, вложенных и рекурсивных процедур иногда делают программу практически необозримой и недоступной для структурного анализа. Поскольку наглядность программы, как правило, пропорциональна ее надежности, возникает необходимость разбиения программы на части ради упрощения ее структуры. Это может быть обеспечено простейшим путем - выделением в программе обособленных разделов по их функциональному назначению. Например в начале программы могут быть размещены различные описания и определения, затем, во второй ее части - процедуры инициализации, в третьей - ввод данных, после чего следует обработка и, наконец, вывод данных.
Хотя Алгол допускает довольно сложные конструкции операторов перехода, признаком хорошей программы на Алголе считается как можно более редкое использование в ней этих операторов. Другие управляющие структуры, в частности условные операторы и операторы цикла, помогают избежать применения операторов goto. Степень наглядности программы на Алголе без операторов goto по всей видимости и лежит в основе дискуссии о переходах ( см. разд.
Напомним, что при наличии в программе команды транслятору PRINT NOGEN, в листинге, выдаваемом транслятором, печатается исходный текст автокодной программы. При этом для улучшения наглядности программы на печать выдается сначала сама макрокоманда ( хотя она и не фигурирует в программе, передаваемой на обработку ассемблеру), а затем - результат макроподстановки.
Чисто статическое определение типов приводит и к тому, что процедуры и функции могут применяться только к массивам одного фиксированного размера. Бели в качестве формального параметра используется массив, то снова требуется задать его длину. Вирт [ 19], это правило способствует наглядности программ, предохраняет их от ошибок, но служит весьма серьезным препятствием для гибкости процедур.
Текст программы, записывается в свободной форме без привязки к каким-либо определенным колонкам бланка программирования. Между отдельными элементами программы ( ключевыми словами, идентификаторами, константами, операторами) могут быть вставлены пробелы. Они не являются обязательными, но повышают наглядность программы и качество программного документа.
Использование имен регистров Как уже отмечалось, из-за малого количества общих регистров и их интенсивного использования транслятор не занимается распределением регистров для тех или иных целей - решение этого вопроса полностью передается на усмотрение программиста. По этой причине ссылка на регистры в автокодных командах, вообще говоря, должна производиться путем указания их номеров. Однако при этом, конечно, снижается наглядность программы, поскольку надо вспоминать, значение какой величины хранится в регистре с тем или иным номером. Автокод позволяет дать каждому регистру свое имя и использовать его для ссылок на содержимое регистра, а с помощью объявлений эквивалентности программист может каждому из этих имен поставить в соответствие определенный номер. В нашей программе используется и предшествующий ему регистр. Ему, конечно, тоже можно дать свое имя, например РР, а потом с помощью объявлений эквивалентности поставить в соответствие именам Р и РР нужные номера регистров.
В наших примерах из предыдущего раздела мы видели, что удаление отсечений из программы может привести к изменению ее декларативного смысла. Использование отсечений последнего типа требует меньшей осторожности, и поэтому такие отсечения иногда называют зелеными отсечениями, С точки зрения наглядности программы такие отсечения невшшы и их использование вполне приемлемо. При чтении программы их можно просто игнорировать.

Выбор структуры данных неоднозначен. Возможны различные варианты ее. Каждому варианту обычно соответствует свой метод решения задачи, более или менее сложный, а соответственно и разные по сложности и наглядности программы. Поэтому следует стремиться к выбору более целесообразной, оптимальной структуры данных.
Для того, чтобы программа меньше подвергалась исправлениям при изменении ее констант, следует замещать переменными те из констант; которые могут измениться в ходе эксплуатации и модернизации. Перед использованием таких переменных в программе им необходимо присвоить значение, равное заменяемой константе. Присвоение может осуществляться, как обычным оператором присваивания, так и другими, имеющимися в языке средствами, например, в PL / I это можно осуществить с помощью атрибута INITIAL; кроме того, могут быть использованы и препро-цессорные средства ОС ЕС. При замене констант на переменные, следует обратить внимание на мнемоничность заменяющих идентификаторов, иначе наглядность программы может уменьшиться.
Важным, но часто пренебрегаемым аспектом программирования для вычислительных машин является проверка диапазонов. Введение ограничений перекладывает тяжесть этой проверки с программиста на компилятор. Ограничения, в частности ограничения целого типа, следует применять всюду, где это только возможно. В самом деле, целый тип редко встречается в хорошо написанной программе на языке Паскаль, поскольку очень редко бывает так, что диапазон значений переменной целого типа совершенно непредсказуем. Использование определений ограниченных типов улучшает наглядность программы, так как указывая диапазон значений, которые может принимать г. еремен-ная, вы сообщаете тому, кто изучает вашу программу, некоторую информацию об этой переменной.
Из-за малого количества регистров транслятор не производит их распределения между различными объектами, значения которых должны размещаться в регистрах, - эту задачу должен решать сам программист. В связи с этим ссылка на регистры производится, вообще говоря, путем непосредственного указания их номеров. Однако такой способ может вызвать определенные трудности при составлении программы, поскольку до окончания этой работы иногда неясна потребность в регистрах, что затрудняет их предварительное распределение для тех или иных целей. Кроме того, использование номеров регистров для ссылки на их содержимое значительно ухудшает наглядность программы и затрудняет ее понимание. Например, в записи на автокоде ВЕКТОР ( 2) число 2 означает вовсе не номер ( индекс) компоненты массива ВЕКТОР, как это обычно принято при использовании переменных с индексами, а номер регистра, в котором хранится значение индекса.
В главе 3 излагаются рекомендации по разработке алгоритма, представления данных и набора тестов, начиная с анализа условия задачи. Описывается метод пошаговой разработки программы и ее тестового набора. Излагаются методы обоснования алгоритма и его описания на разных этапах разработки. Рассматриваются вопросы выбора представления обрабатываемых данных. Описываются вопросы, возникающие на этапе кодирования алгоритма. Рассматриваются дисциплина структурного программирования и другие средства повышения наглядности программ. Даются рекомендации по выбору и обоснованию набора тестов. Описываются средства повышения эффективности программ.
 
Loading
на заглавную 10 самыхСловариО сайтеОбратная связь к началу страницы

© 2008 - 2014
словарь online
словарь
одноклассники
XHTML | CSS
Лицензиар ngpedia.ru
1.8.11