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

 

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

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

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

3) Потоки передачи данных. Разбивая задачу на подзадачи, программист предусматривает их взаимодействие по данным: одни подзадачи передают другим данные для переработки;
4) Структуры данных. Данные объединяются в логически связанные фрагмент , соответстуие структурам задачи либо вспомогательнх конструкций, вводимых для ее реения;
5) "Призраки". Часто даже сама программа не может быть объяснена через понятия, которые использу тся внутри нее. Ее чае это происходит для ее связей с внешним миром. Понимание программы возможно лишь после сопоставления 'реальных' внутрипрограммных объектов с 'идеальными' внепрограммнми. Эти идеальные внепрограммные объекты (призраки) часто не просто не ну ны, но да е вредн для исполнения программы.12
ервым обратил внимание на неоходимость введения призраков для логического и концептуального анализа программ Г. С. ейтин в 1971 г. Впоследствии в Америке это 'независимо' переоткрыли в 1979 г., хотя упомянутая статья ейтина была опубликована на английском языке в обедо-ступном издании. а е название суностям было дано то е самое. . .
ля структурного программирования весьма ванм является следуее требование:
Все структуры подчиняются структуре информационного
пространства.
Это общее требование конкретизируется в следующие.
1. Необходимо, чтобы структура управления программы была согласована со структурой ее информационного пространства. Кадой структуре управления соответству т согласуиеся с ней структур данных
12 И, кстати, программистам стоит почаще вспоминать, что с точки зрения пользователя либо заказчика их внутрипрограмные объекты как раз являются такими же 'призраками', которые не имеют никакого отношения к реальной действительности. Так что при переходе от уровня рассмотрения программы самой по себе к уровню программы как части архитектуры реальной человеко-машинной системы идеальные и реальные объекты порою меняются местами.
128
3.
и часть информационного пространства. Это условие позволяет человеку легко отслеживать порядок выполнения конструкций в программе
2. одзадачи могут обмениваться данными только с помоь обраения к объектам из обей части их информационных пространств
3. Информационные потоки должны протекать не ортогонально, а согласно иерархии структур управления; м долны четко видеть для кадо-го блока программы, что он имеет на входе и что он дает на входе. Таким образом, свойства каждого логически завершенного фрагмента программы должны ясно осознаваться и в идеале четко описываться в самом тексте программы и в сопровождающей ее документации.13
4. писание переменнх, представляих перерабатываемые объекты, а так е других, вспомогательнх переменнх при структурном программировании строго подчиняется разбиению задачи на подзадачи.
5. В се признаки действуют на своем структурном месте и соответству-
т идеальным суностям, которые, согласно парадоксу изобретателя, должны вводиться для эффективного решения задачи.
Структурное программирование луче всего описано теоретически, но частные описания не сведены в едину систему. дни книги тракту т его с точки зрения программиста, другие — с точки зрения теоретика. Так что да е здесь единой систем взглядов ее нет, хотя, видимо, все основания для ее формирования уже имеются.
Необходимо помнить, что структурное программирование, как правило, плохо подходи для описания сисем глобальнх дейсвий. Это выявилось у е в теории. именно, в теореме о структурировании схем программ, доказанной Бемом и акопини, вводились дополнительне локальне булевские переменные, в совокупности которых, по сути дела, запоминалось состояние программы. Без введения дополнительных переменных невозможно структурировать даже следующий цикл с двумя выходами (см. рис. 3.4).
В обее употребление структурное программирование воло после по-пуляризировавей его работ Э. ейкстр , в которой, к со алени , на указанные нами ограничения не было даже намека, так же, как и на ограничения, вытекающие из самой теоремы Бема-Джакопини. Применение структурных
13 Как видим, программа должна составляться после того, как программист хорошенько подумал, а не до того.
3.3.
129
-МГ> * f
1
Q
P
Рис. 3.4. Цикл Бема-Джакопини
о
переходов, которые ввел в практику и теорию Д. Кнут (откопавший ориги-нальну работу Бема- акопини и четко выделивий ограничения дейкс-тровского структурного подхода14) избавляет от многих недостатков, присущих методике Дейкстра. Структурные переходы — переходы лишь вперед и на более высокий уровень структурной иерархии управления, ни в каком случае не выводящие нас за пределы данного модуля.
Программа 3.3.1
ЛПримеры структурных goto.*/
do {y = f( x ,y);
if(y>0) break;
x=g(x,y); } while (x > 0 );
{...
{
if (All_Done) goto Success;
}
Success: Hurra;}
Структурные переходы в настоящее время также включаются в общераспространенные языки программирования. Их использование понемногу проникает и в учебне курсы.
14 Так что, применяя теоретический результат, всегда интересуйтесь не только его формулировкой, но и доказательством, желательно в работе авторов.
Предыдущая << 1 .. 40 41 42 43 44 45 < 46 > 47 48 49 50 51 52 .. 316 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100