Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Непейвода Н.Н. -> "Основания программирования " -> 45

Основания программирования - Непейвода Н.Н.

Непейвода Н.Н., Скопин И.Н. Основания программирования — Институт компьютерных исследований , 2002. — 919 c.
Скачать (прямая ссылка): osnovanprogramm2002.pdf
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 316 >> Следующая

§ 3.3. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ — САМЫЙ РАСПРОСТРАНЕННЫЙ СТИЛЬ
В теории схем программ было замечено, что некоторые случаи блок-схем легче поддаются анализу [44]. Поэтому естественно было выделить такой класс блок-схем, что и сделали итальянские ученые С. Бем и К. Джакопи-
3.3.
125
ни в 1966 г. О ни доказали, что любую блок-схему можно преобразовать к структурированному виду, использовав несколько дополнительных булевых переменных. Э. Дейкстра подчеркнул, что программы в таком виде, как правило, явля тся легче понимаемыми и модифицируемыми, так как кадый блок имеет один вход и один вход. Эти набл дения послу или основой стиля программирования, который, начиная с 70-х гг. XX века, занимает практически монопольное положение в преподавании и исключительно широко используется в практике программирования. Этот стиль называется срук-урнм программированием.
В качестве методики структурного программирования Э. Дейкстра пред-ло ил пользоваться лиь конструкциями цикла и условного оператора, изгоняя go to, как концептуально противоречащее этому стилю.
Поскольку на практике и в основной части данного пособия речь идет именно о структурном программировании, здесь мы остановимся на данном стиле лиь бегло, поставив его на то равноправное место, которое он в принципе занимает среди альтернативнх ему друзей-соперников9.
Структурное программирование основано главным образом на теоретическом аппарате теории рекурсивных функций. Программа рассматривается как частично-рекурсивный оператор над библиотечными подпрограммами и исходнми операциями. труктурное программирование базируется так е на теории доказательств, преде всего на естественном вводе. трукту-ра программы соответствует структуре простейего математического рассуждения, не использующего сложных лемм и абстрактных понятий.10
Средства структурного программирования в перву очередь вкл ча тся во все языки программирования традиционного типа и во многие нетради-ционне язки. ни занима т основное место в учебнх курсах программирования ([3, 27, 37, 51]).
При структурном программировании присваивания и локальные действия становятся органичной часть программы. остаточно лиь внимательно следить, чтобы кадая переменная повс ду в модуле использовалась лиь для одной конкретной цели, и не допускать «экономии», при которой ненуж-
9 Если нечто в данный момент используется практически монопольно, то из этого не следует, что оно будет занимать столь же исключительное положение и в будущем и что оно окажется лучшим средством для решения Ваших конкретных задач.
10 На самом деле традиционным вычислительным программам соответствует не классическая, а интуиционистская логика, но структура доказательств и большинство правил вывода в них совпадают.
126
3.
ная в данном месте переменная временно используется совсем под другое значение. Такая «экономия» запутывает структуру информационных зависимостей, которая при данном стиле должна быть хорошо согласована со структурой программ .
Структурное программирование естественно возникает в многих классах задач, преде всего в таких, где задача естественно расепляется на подзадачи, а информация — на достаточно независимые структуры данных. Для подобных задач — это, безусловно, лучший стиль программирования, в случае, если собл дается основной его инвариант:
Действия и условия локальны
еобходимой чертой хороей реализации структурного стиля программирования является соблюдение согласованности, а в идеале и единства, следующих компонент программы:
1) Структура информационного пространства. Содержательно любую задачу можно описать как переработку объектов, полный набор которых называется ин ормационнм просрансвом задачи.
Для структурного стиля программирования требуется следующее. Задача разбивается на подзадачи, и таким образом встраивается дерево вло ен-ности подзадач. Информационное пространство структурируется в точном соответствии с деревом вложенности: для каждой подзадачи оно состоит из ее локальных объектов, определяемых вместе с подзадачей и для нее, и так называемых глобальных объектов, определяемых как информационное пространство непосредственно объемлей подзадачи. Таким образом, информационное пространство всей задачи (подзадачи самого верхнего уровня) расширяется по мере перехода к подзадачам за счет их локальнх объектов; для различных дочерних подзадач одной подзадачи оно имеет обу часть — информационное пространство родительской подзадачи;11
2) С рук ур управления. Стиль структурного программирования предполагает использование строго ограниченного набора управляющих конструкций: последовательность операторов, условные, выбираие и циклические конструкции, все вычислительные ветви которых (для циклов — ите-
11 В этой системе требований без труда распознается так называемая блочная структура языков программирования, появившаяся еще в Algol 60 и ставшая в настоящее время фактическим стандартом.
3.3.
127
рации) сходятся в одной точке программы, а так е процедуры, вычисления которых всегда заканчиваются возвратом управления в точку вызова;
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 316 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100