Мне на глаза попалась статья на сайте
drakon.pbworks.com (извиняюсь, если это снова "баян" на этом форуме, я не в курсе). Автор явно не указан, но, в любом случае, там отражены взгляды Владимира Даниеловича по поводу затронутых вопросов насчёт структурности и проблем с goto. Действительно, визуальные техники в ДРАКОНе, фактически, это альтернатива "благородным goto" в текстовых языках (как break, continue и пр., в т.ч. и самому "грязному goto"), и всё сведено к формальным методам. Но решение проблем, затронутых выше by Alexey_Donskoy, в статье нет. К тому же, на мой скромный взгляд как человека, не занимающегося теоретическими разработками, в текстовых языках программирования уже как-то разобрались со всей структурностью (в т.ч. и со всеми надстройками, процедурными, ООП и пр.), и о goto вспоминают довольно редко (массовых обсуждений вокруг goto в том же Lua, как-то, замечено не было). Более того, сейчас в императивный мир всё больше и больше проникает техник из функционального программирования (и весьма оправданных), и в императивном коде всё меньше и меньше проглядывается явный "драконовский поезд", т.е. прямой детальный маршрут. Иными словами, ДРАКОН-паровозик в таком виде всё больше и больше отстаёт от локомотива отрасли, и его сфера применения в практичном программировании всё больше и больше сужается.
Кстати, в статье есть оценка взглядов Вельбицкого насчёт структурного и визуального программирования. Цитата из статьи:
Цитата:
...
Размышляя о причинах неудачи и стремясь поправить дело, И. Вельбицкий предлагает радикальным образом пересмотреть само понятие “структура программы”. По его мнению, “структура — понятие многомерное. Поэтому отображение этого понятия с помощью линейных текстов (последовательности операторов) сводит практически на нет преимущества структурного подхода. Огромные ассоциативные возможности зрительного аппарата и аппарата мышления человека используются практически вхолостую — для распознавания структурных образов в виде единообразной последовательности символов”.
Развивая мысль, Вельбицкий противопоставляет текстовое и визуальное программирование, приходит к заключению, что “на рельсах текстового представления программ” резервы повышения производительности труда в программировании исчерпаны, и делает вывод о необходимости изменить “базис” программирования, т. е. перейти от текстового программирования к визуальному.
В настоящее время визуальное программирование бурно развивается, число его сторонников растет. Тем не менее, уместно спросить: в какой мере предлагаемый Вельбицким пересмотр понятия “структура программы” согласуется с пионерскими взглядами Дейкстры?
...
А продолжения сущности в статье и нет. Суть вопроса, например, немного раскрыта в этой статье:
Языки программирования. Цитата:
Цитата:
...
Изучение абстракции управления мы начнем со структурного программирования. Самое общеизвестное определение структурного программирования - подход к программированию, в котором для передачи управления в программе используется три конструкции: последовательная, выбора и итеративная.
Примерно так выглядело историческое становление концепции структурного программирования:
классическая теорема Боэма и Джакопини о структурном программировании утверждает, что всякую правильную программу (т. е. программу с одним входом и одним выходом, без зацикливаний и недостижимых веток) можно записать с использованием следующих логических структур:
последовательности двух или более операторов;
дихотомического выбора;
повторения;
Эдсгер Дейкстра [Дейкстра 1975] предложил отказаться от оператора безусловного перехода и ограничиться тремя конструкциями - последовательностью, выбором и циклом;
Дональд Кнут продемонстрировал случаи, в которых оператор безусловного перехода оказывался полезным (например, выход из нескольких вложенных циклов) и подверг критике утверждение Дейкстры.
Чем еще интересны структурированные программы? В 1965 году академик Глушков обратил внимание на то, что структурированные программы можно рассматривать как формулы в некоторой алгебре. Зная правила преобразования выражений в такой алгебре, можно осуществлять глубокие формальные (и, следовательно, автоматизированные) преобразования программ.
...
Структурное программирование - не самоцель, его основное назначение - получение хорошей программы. Однако даже в самой хорошей программе операторы перехода требуются, например при выходе из множества вложенных циклов.
...
И идеи Глушкова мы наблюдаем в Р-схемах Вельбицкого. Откровенно говоря, сугубо личное имхо, в таком виде Р-схемы лучше адаптированы к практичному программированию, чем ДРАКОН, в т.ч. у них лучше потенциал и для функционального подхода.
Кстати, в статье о языках есть упоминание и о ДРАКОНе.