OberonCore
https://forum.oberoncore.ru/

Структурное программирование
https://forum.oberoncore.ru/viewtopic.php?f=27&t=1219
Страница 1 из 2

Автор:  Neplul [ Воскресенье, 26 Октябрь, 2008 11:20 ]
Заголовок сообщения:  Структурное программирование

"...Необходимо помнить, что структурное программирование, как правило,
плохо подходит для описания систем глобальных действий. Это выявилось
уже в теории. А именно, в теореме о структурировании схем программ, до-
казанной Бемом и Джакопини, вводились дополнительные локальные булев-
ские переменные, в совокупности которых, по сути дела, запоминалось со-
стояние программы. Без введения дополнительных переменных невозможно
структурировать даже следующий цикл с двумя выходами (см. рис. 3.4).
В общее употребление структурное программирование вошло после по-
пуляризировавшей его работы Э. Дейкстры, в которой, к сожалению, на ука-
занные нами ограничения не было даже намека, так же, как и на ограничения,
вытекающие из самой теоремы Бема-Джакопини...."
Что это за теорема такая Бема-Джакопини?

Автор:  AVC [ Воскресенье, 26 Октябрь, 2008 11:54 ]
Заголовок сообщения:  Re: Структурное программирование

Neplul писал(а):
Что это за теорема такая Бема-Джакопини?
Точную формулировку не помню, но смысл в том, что для формулировки любого алгоритма достаточно последовательности (операторов), ветвления (if ... then ... else) и циклов (с одним входом и одним выходом). В неструктурном goto нет необходимости.

Автор:  AVC [ Воскресенье, 26 Октябрь, 2008 12:21 ]
Заголовок сообщения:  Re: Структурное программирование

Neplul писал(а):
"<...>В общее употребление структурное программирование вошло после по-
пуляризировавшей его работы Э. Дейкстры, в которой, к сожалению, на ука-
занные нами ограничения не было даже намека, так же, как и на ограничения,
вытекающие из самой теоремы Бема-Джакопини...."
Вот именно.
Дейкстра - жуликоватый популяризатор?.. ой... :oops:

Автор:  AVC [ Воскресенье, 26 Октябрь, 2008 12:41 ]
Заголовок сообщения:  Re: Структурное программирование

Дональд Кнут в защиту goto: html и pdf.

Автор:  Илья Ермаков [ Воскресенье, 26 Октябрь, 2008 16:02 ]
Заголовок сообщения:  Re: Структурное программирование

Эти проблемы уже обсуждались в разделе ДРАКОНа. Да, для управляющей, событийной логики классическое структурное программирование (один выход из конструкции) может быть неудобным.
Но в одномерном пространстве текста другого выбора нет, только так можно внести ясность.
Чертёж - другая ситуация. Там уже возможно некое "двумерное структурное программирование", где выходы не стягиваются вновь в одну линию.

Автор:  Info21 [ Воскресенье, 26 Октябрь, 2008 17:32 ]
Заголовок сообщения:  Re: Структурное программирование

AVC писал(а):
Дональд Кнут в защиту goto:
Дейкстра сделал простую и понятную вещь:
прояснил логическую/математическую структуру императивного программирования и вывел свой формализм из первых принципов.

Мое обдуманное мнение: Дональд Кнут -- "рукосуй", как все ярко выраженные комбинаторные типы.
Обобщения его -- кривые или тривиальные.
Его утверждение (в тексте, указанном AVC) насчет того, что классические математики выиграли (won) у конструктивистов -- просто неверно. Он элементарно не понимает этого своего простенького и привлекательного лозунга.

Дейкстра, повторюсь, вывел свою теорию построения программ из первых принципов. Разумеется, в идеальных предположениях. (Кто, окончив ун-т по соотв. специальностям, не понимает таких вещей?)

Что ради оптимизации приходится отступать от строгой структурности -- тривиально, и что в дурно спроектированных языках вызов процедур дорог и т.п., и может стать необходимым отказаться от структурности -- тоже тривиально.
Но, например, Вирт минимизировал сей оверхед именно чтобы поддерживать структурность -- а, следовательно, в конечном счете и надежность программ.

Принял "статистическое решение" и дальше читать Кнута не стал.......

Автор:  Valery Solovey [ Воскресенье, 26 Октябрь, 2008 17:41 ]
Заголовок сообщения:  Re: Структурное программирование

AVC писал(а):
Дональд Кнут в защиту goto: html и pdf.
А на русском есть?. А то я со своим английским, наверное, больше суток на перевод потрачу.

Автор:  Neplul [ Воскресенье, 26 Октябрь, 2008 19:47 ]
Заголовок сообщения:  Re: Структурное программирование

AVC писал(а):
Neplul писал(а):
Что это за теорема такая Бема-Джакопини?
Точную формулировку не помню, но смысл в том, что для формулировки любого алгоритма достаточно последовательности (операторов), ветвления (if ... then ... else) и циклов (с одним входом и одним выходом). В неструктурном goto нет необходимости.

Спасибо, учили такое только нам не говорили что она так называется.
На счет go to то я считаю что его можно использовать в программировании, только при условии правильного применения (схемы Янова) , но так как многие программисты не пользуются даже методами Дейкстры, то лучше его вообще убрать из языка(что бы руки не чесались).

Автор:  Wlad [ Воскресенье, 26 Октябрь, 2008 20:24 ]
Заголовок сообщения:  Re: Структурное программирование

Neplul писал(а):
...только при условии правильного применения (схемы Янова) , но так как многие программисты не пользуются даже методами Дейкстры, то лучше его вообще убрать из языка(что бы руки не чесались).

Простое провозглашение принципов без поддержки формализма - пустое занятие. Проговаривание (даже на повышенных тонах, вплоть до визга и слюн) лозунгов и конкретное запретительство с непременным битиём ручек - совершенно разные по эффективности действия...
Си++ - богатейший язык. Одно "но" - поддерживать-то он разныя парадигмы поддерживает, но нет мер по обеспечению объяснений компилятору каких именно... А так получается, что синтаксис с семантикой разруливания типов и использования переменных (на самом низком уровне - представления в и использования памяти) мы делаем, а "парадигмы поддерживать" - опять на самый ненадёжный элемент оставили - ЧЕЛОВЕКА (сиречь ПРОГРАММИСТА)... Остаётся только смеяться.
Посему ломание копий по поводу "лучшести" языкофф - клоунада. Всё опять сводится к выявлению отдельных талантов, мастерски отображающих предметные области на средства реализации, и УМЕЮЩИХ организовать "формализмы" поддержки своих систем понятий...
А есть "идтина" , нету ли его - КАКАЯ РАЗНИЦА? Любой человек и так понимает, что существует некий порог понимания собственного навороченного кода, если начинаешь отходить от апробированных схем и подходов. А - не понимает - тогда он сам себе злобный буратино!

Автор:  Info21 [ Воскресенье, 26 Октябрь, 2008 21:17 ]
Заголовок сообщения:  Re: Структурное программирование

Владимир Лось писал(а):
... А - не понимает - тогда он сам себе злобный буратино!
Хорошо, а что делать пенсионерам в очереди в регистратуру в поликлинике, когда в регистратуре "опять зависла система"? (Опять с этим столкнулся на прошлой неделе.)

Автор:  Wlad [ Воскресенье, 26 Октябрь, 2008 21:33 ]
Заголовок сообщения:  Re: Структурное программирование

Info21 писал(а):
Владимир Лось писал(а):
... А - не понимает - тогда он сам себе злобный буратино!
Хорошо, а что делать пенсионерам в очереди в регистратуру в поликлинике, когда в регистратуре "опять зависла система"? (Опять с этим столкнулся на прошлой неделе.)

Носить с собой валидол.
Потому, как 99% из этих хомосапиенсов жутко желает, что бы их детки и внучкИ "харашо устроились", а уразуметь, что зависшая система, как раз одним из таких "харашоустроившихся" унуков и написана - мозгов не хватает!
И мне их НЕ ЖАЛКО.
Просто начинают работать хаотично установившиеся обратные связи в Системе. "Ото ж мы жилЫ погано, не хай наши диточкЫ краще поживуть!" А - НЕ ХАЙ! Вот так и будут дедушки с внучками собственное дерьмо разгребать!
Потому, как когда полученный диплом - не свидетельство обретённых знаний и показатель общего уровня культуры, а просто - пропуск на "место" - погани справы у цьому суспильстве!
Но именно так мы захлёбываемся. И отношение к "оберонам" - только малая часть всеобщего захлёбывания в дерьме текучки и погони за мэйнстримом. Правила уже установлены: остановился (хотя бы, что бы в покое поразмыслить) - ЗНАЧИТ ОТСТАЛ!!! Только вот вопрос: ОТ ЧЕГО? И ЧТО ПОТЕРЯЛ?

Автор:  Borg [ Воскресенье, 26 Октябрь, 2008 21:39 ]
Заголовок сообщения:  Re: Структурное программирование

Info21 писал(а):
Владимир Лось писал(а):
... А - не понимает - тогда он сам себе злобный буратино!
Хорошо, а что делать пенсионерам в очереди в регистратуру в поликлинике, когда в регистратуре "опять зависла система"? (Опять с этим столкнулся на прошлой неделе.)
Писать жалобу. Против парадигмы - сложность источник доходов программистов и компаний, государства не попрешь.

Автор:  Info21 [ Воскресенье, 26 Октябрь, 2008 21:44 ]
Заголовок сообщения:  Re: Структурное программирование

Владимир Лось писал(а):
... "Ото ж мы жилЫ погано, не хай наши диточкЫ краще поживуть!"

Живописна мова :-) Где-то был у меня учебник... надо бы подучить :-)

Только в этом случае я бы писал вместе: нехай. А в другом случае -- отдельно: не хай.

Владимир Лось писал(а):
... И отношение к "оберонам" - только малая часть всеобщего захлёбывания в дерьме текучки и погони за мэйнстримом. ...

Я бы сказал "захлёбывания в дерьмовом потоке мейнстрима".

Автор:  AVC [ Воскресенье, 26 Октябрь, 2008 22:22 ]
Заголовок сообщения:  Re: Структурное программирование

Valery Solovey писал(а):
AVC писал(а):
Дональд Кнут в защиту goto: html и pdf.
А на русском есть?. А то я со своим английским, наверное, больше суток на перевод потрачу.
На русском пока не нашёл. :(
Чтобы не тратить сейчас много времени на перевод (вдруг скоро найдётся на русском), можно сосредоточиться исключительно на программных кусках (на коде).
Всё же подброшу русских ссылок.
http://ru.wikipedia.org/wiki/GOTO (попытка объективного перечисления pro et contra)
Дейкстра. Доводы против оператора goto (с чего всё началось)
http://phpclub.ru/faq/goto (сайт посвящен PHP, но много ссылок на сайт info21)
Владимир Юнев. Точки выхода или немного о структурном программировании ("разделяй и властвуй"; любопытны также комментарии)

Автор:  Valery Solovey [ Понедельник, 27 Октябрь, 2008 15:10 ]
Заголовок сообщения:  Re: Структурное программирование

Спасибо.

Автор:  Neplul [ Вторник, 02 Декабрь, 2008 12:42 ]
Заголовок сообщения:  Re: Структурное программирование

Господа у кого есть хорошая литература на русском языке про формальную верификацию(логику Хоара, работы Флойда, детонационная семантика и др.)
Заранее спасибо!

Автор:  Info21 [ Вторник, 02 Декабрь, 2008 12:55 ]
Заголовок сообщения:  Re: Структурное программирование

Neplul писал(а):
детонационная семантика

денотационная, от нотация >> денотат

Автор:  Neplul [ Вторник, 02 Декабрь, 2008 13:01 ]
Заголовок сообщения:  Re: Структурное программирование

Info21 писал(а):
Neplul писал(а):
детонационная семантика

денотационная, от нотация >> денотат

Спасибо! Извиняюсь :oops: первоначально так и писалось но я его с дуру исправил с помощью встроенного орфографического словаря. :oops:

Автор:  Илья Ермаков [ Вторник, 02 Декабрь, 2008 18:47 ]
Заголовок сообщения:  Re: Структурное программирование

Первоисточников по верификации на ЖД не нашёл. Попробуйте поискать на EuroProg.ru и на Infanata.org.

Вот есть пара книжек-учебников по методам верификации софта (темпоральные логики и чё-то ещё), но сам не смотрел.

Вложения:
_klark_gamberg_pered_verification.djvu [4.6 МБ]
Скачиваний: 400
mthprogsys.pdf [666 КБ]
Скачиваний: 505

Автор:  Илья Ермаков [ Вторник, 02 Декабрь, 2008 18:48 ]
Заголовок сообщения:  Re: Структурное программирование

А, ещё можно глянуть на сайте у А.А. Шалыто (ИТМО).
У него там точно были материалы (и его, и другие) по этим вопросам, хотя больше с уклоном в верификацию автоматных программ.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/