Cтраница 2
Определенный вклад в развитие эвристических методов проектирования внесли работы по структурному проектированию [8], в которых предложено использовать анализ информационных потоков при структурировании программ и предложена качественная оценка структур, основанная на характере межмодульных и виу-тримодульных связей. [16]
При этом довольно сложно распределить работу между двумя исполнителями либо осуществлять проверку всего проекта. Структурирование программы проводится в окончательном ее виде, а не является результатом раскрытия функций. [17]
Эта структура определяет общий способ применения таких алгоритмов. Идею метапрограммирования как механизма структурирования программ распространим теперь на задачу контроля за использованием базы данных Пролога в качестве глобальной переменной. [18]
Каждый абзац относится к одному акту структурирования программы и начинается символическим именем структурируемой задачи. Если способ структурирования задачи очевиден и не требует пояснений, то соответствующая конструкция ( конкатенация, альтернатива или итерация) пишется вслед за именем задачи, отделяемая от него двоеточием. Получившаяся строка называется структурной формулой. Если считать имя задачи меткой, а используемые для краткости фигурные скобки служебными словами начало и конец, структурная формула становится конструкцией алгола. [19]
Основным понятием в системе iAPX - 432 является объект. Оно введено для того, чтобы облегчить структурирование программ и обеспечить программисту возможность работы с элементами более крупными, чем переменная и инструкция. [20]
В главе 5 мы представим еще один элемент структурирования программ, называемый функцией. Мы научимся создавать большие программы, комбинируя функции, которые в свою очередь состоят из управляющих структур. Мы обсудим также, каким образом применение функций способствует многократному использованию программного кода. [21]
Стиль программирования - это та манера, в которой программист употребляет возможности и особенности выбранного языка программирования, пишет и оформляет свои программы. Когда говорят о стиле программирования, то имеют в виду ту же цель, что и при структурировании программ: добиться получения таких программ, которые легко читаются и понимаются, причем не только их авторами, но и другими людьми. [22]
Приведен один из наиболее привлекательных для пользователя персональных ЭВМ язык программирования БЕЙСИК, который имеет удобный редактор текстов, встроенные средства отладки программ, нетребователен к базовым знаниям программиста. В то же время язык БЕЙСИК полезен опытным специалистам, так как среди его достоинств выделяются наличие средств структурирования программ, организация оверлейных программ, возможность обращения к программам, написанным на других языках, развитые звуковые и графические средства. [23]
Кроме этих трудностей, которые представляются нам самыми принципиальными, существует еще множество странных свойств языка, которые читатель без труда обнаружит в процессе отладки своих собственных программ. Но, несмотря на них, если бы появилась версия Бейсика для ПЭВМ, в которой хотя бы была улучшена структура оператора IF-THEN-ELSE и продумана возможность структурирования программы, мы бы, безусловно, рекомендовали Бейсик всем начинающим ( и не только начинающим) программистам ПК. [24]
Вторая глава имеет более вычислительный характер. В ней рассматривается главным образом процедурная интерпретация логики и показывается, как знакомые алгоритмические процессы извлекаются интерпретатором из логических программ. III и IV приводятся прагматические и стилистические соображения по поводу структурирования программ и данных. Таким образом, главная задача первой половины книги - объяснить, как следует понимать и составлять логические программы. [25]
Если технология должна быть универсальной, рассчитанной на разработку любых программ, то она должна строиться только на общих свойствах программ и не может учитывать специфических особенностей отдельных, более узких их классов. Понятно, что рекомендации такой технологии будут носить более общий характер и требовать более высокой квалификации исполнителей. Для конкретных классов программ могут быть выработаны более конструктивные приемы, в том числе для структурирования программ на этапе проектирования. Но разработка таких приемов требует серьезных предварительных исследований. Перенос технологии, разработанной для какого-либо частного класса программ, на разработку программ другого класса может на только не дать ожидаемого эффекта, но и привести к бесполезным затратам ресурсов. Такая опасность может возникнуть еще и потому, что во многих публикациях, описывающих технологию, область ее применения определяется недостаточно четко. Это связано чаще всего с трудностью выделения класса программ или с субъективностью опыта авторов разработки. [26]
Длину программы на компактном входном языке можно сократить, рационально используя возможные разнообразные способы реализации одних и тех же операторов алгоритма. Следует учитывать, что уменьшение длины программы складывается из небольших уменьшений числа шагов в отдельных фрагментах, а если длина оптимизируемой программы лишь на несколько шагов превышает число ячеек программной памяти, выигрыш от сокращения длины программы и устранения необходимости использования пакета программы оказывается значительным. Если при уменьшении длины отдельных фрагментов удается устранить и операторы безусловных переходов ( что соответствует требованиям структурирования программ), то заметно сократится и время выполнения программы. [27]
Комплексы программ должны строиться согласно модульно-иерархическому принципу, по определенным правилам оформления программ и их взаимного сопряжения ( интерфейса) по управлению и по информации. Создаваемые методы структурного проектирования программ должны обеспечить ясность архитектуры комплексов, их познаваемость и модернизируемость, возможность унификации программных модулей для их использования в различных КП. Архитектура КП должна позволять вести разработку сверху вниз - от общих требований к частным - и контролировать реальное состояние проектирования на любых этапах. Структурирование программ должно способствовать повышению уровня интеграции компонент при проектировании комплексов программ, унификации и широкому применению макрокоманд и стандартных программных модулей различного назначения. [28]
Структурировавшая программе любого размера может быть достаточно легко прочет-гада и воивиф пуки уетансвдсния иерархии ее элементарных программ и из. Элементарные nporpawlw тетают с целью установления их программных функций. Програшдвые функции используются для документирования программных проектов; их приписывают к элементам языка PDL как логический комментарий. Методы структурирования программ, описанные в предыдущей главе, в сочетании с правилами чтения элементарных программ и логическими комментариями позволяют разобраться в больших и запутанных программах и документировать их. Ниже будет рассмотрен пример программы на языке ПЛ / 1 произвольной структуры, записанной без комментариев, которая в результате сиетематическего структурирования, чтения и записи логического комментария будет сделана легко читаемой и понятной. [29]
Для иллюстрации тупиковой ситуации предположим, что блокировка системы прерываний в процессе MainLoop ( рис. 11.10) вводится перед первым оператором SLEEP, а де-блокировка - после проверки переменной InputBufferEmpty. Тогда если процесс MainLoop оказывается в состоянии ожидания входного воздействия, то он должен ожидать при блокированных прерываниях. При этом может оказаться, что процесс MainLoop никогда не будет вновь переведен в состояние выполнения, так как для этого требуются прерывания от входного воздействия. Таким образом, необходимо еще раз подчеркнуть, что написание и структурирование программ с параллельными процессами требуют тщательного анализа программ и условий их работы. [30]