DRAKON.SU

Текущее время: Пятница, 05 Март, 2021 13:07

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 376 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 19  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 17 Апрель, 2008 14:02 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
TMX писал(а):
Цитата:
Идея конечного автомата (как и циклы, и другие управляющие конструкции) вполне реализуема графически (как гипертекст с автоматическими отступами, пиктограммами, таблицами, локальными меню, локальным выделением цветом фона и т.д.), но без блок-схем.

Да, идея реализуема. Ну и что?
Для тестирования в РВ полезно знать о конкретной реализации. И ДРАКОН для этого - самая подходящая вещь.


Тут ничего не возразишь: старые разношенные ботинки - самые удобные. И, вообще говоря, Дракон-схемы можно рисовать даже на уголке оберточной бумаги, безо всякого компьютера. Но речь-то в форуме идет о других пользователях, которым нужно формализованное графическое представление, автоматически превращающееся в код.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 15:09 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Цитата:
Другими словами, Вы про механизм сессий? Это правильно. А в чём тут проблемы?

Возможно в том, что я не понял, что такое "механизм сессий". Буду признателен, если вы мне объясните.

В одном из постов есть пример изображения работы калькулятора в HSM.
Предположим, мы хотим реализовать его с помощью ДРАКОН. Автомат запускается по нажатию кнопки.
Там есть кнопка "С" - сброс. Можно опрашивать ее в каждом состоянии и при нажатии выбрасываться в начальное состояние. Но лучше сделать второй автомат, который следит за кнопкой "С" и выкидывает другой автомат принудительно в начальное состояние.
Смысл в том, что операция "ВВОД ЧИСЛА" - длительная процедура с несколькими состояниями, причем контролируемая двумя автоматами. И я пока не придумал ФОРМАЛЬНОГО способа отражать это на диаграммах.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 15:15 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Цитата:
Тут ничего не возразишь: старые разношенные ботинки - самые удобные.

Покажите мне, пожалуйста, того кто успел разносить эти ботинки. У меня к нему масса конкретных вопросов.
Цитата:
И, вообще говоря, Дракон-схемы можно рисовать даже на уголке оберточной бумаги, безо всякого компьютера.

Согласен, но править тяжело.
Цитата:
Но речь-то в форуме идет о других пользователях, которым нужно формализованное графическое представление, автоматически превращающееся в код.

Тема: "Визуальный язык программирования "Дракон".
Я знаю десяток CASE-средств, но все они менее удобны, поскольку ориентированы на UML или SDL.
Мне кажется более удобным ДРАКОН. Собственно, поэтому я на форуме.

Поясняю:
у нас есть рабочий процесс, основанный на структурном подходе, ориентированный на использование ДРАКОН и хорошо себя зарекомендовавший.
Я его расписал выше.
Оттуда видно, что автоматическая генерация кода сэкономит немного времени.
А вот инструмент для рисования диаграмм - гораздо более полезная вещь.


Последний раз редактировалось TMX Четверг, 17 Апрель, 2008 15:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 15:29 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
TMX писал(а):
Цитата:
И, вообще говоря, Дракон-схемы можно рисовать даже на уголке оберточной бумаги, безо всякого компьютера.

Согласен, но править тяжело.


А MS Visio не пробовали? Там чего только нет... Можно и Дракона изобразить, и вообще всё, что душе угодно (вашу собственную версию Дракона), раз вам не нужна автоматическая генерация кода.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 15:32 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Пробовали - отстой.
Даже OrCAD пробовали :)
Сейчас пользуемся EdgeDiagrammer.

К сожалению, ни один из них не поддерживает правила ДРАКОН :(


Последний раз редактировалось TMX Четверг, 17 Апрель, 2008 20:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 15:37 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1096
Откуда: Россия, Чебоксары
TMX писал(а):
Возможно в том, что я не понял, что такое "механизм сессий".

Ну как веб-сервер открывает сессию на каждого посетителя... То есть создаётся процесс (в частном случае - Ваш автомат)... Естественно, они могут влиять друг на друга... Собственно, все RT-системы в той или иной форме используют механизм, где-то он называется многозадачностью, где-то самостоятельно реализуется при помощи флагов...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 16:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Alexey_Donskoy писал(а):
Илья Ермаков писал(а):
для представления структурированного(!) алгоритма двух измерений без пересечений необходимо и достаточно (вертикаль - последовательность действий, горизонталь - ветвление по принятию решений).

Разительно напоминает войну, объявленную goto... Избавиться от пересечений - не должно быть самоцелью и даже обязательным условием.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 16:56 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
Илья Ермаков писал(а):
Alexey_Donskoy писал(а):
Илья Ермаков писал(а):
для представления структурированного(!) алгоритма двух измерений без пересечений необходимо и достаточно (вертикаль - последовательность действий, горизонталь - ветвление по принятию решений).

Разительно напоминает войну, объявленную goto... Избавиться от пересечений - не должно быть самоцелью и даже обязательным условием.

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


Мне кажется, лучше использовать такие языковые конструкции (замкнутые, инкапсулирующие, иерархически организованные, использующие функциональный стиль программирования), которые принципиально не могут породить никаких пересечений. Пересечения - это следствие избыточной свободы системы программирования, которая (избыточная свобода) провоцируюет ошибки. Мало избавиться от оператора GOTO. Надо для наиболее часто используемых моделей и алгоритмов (конечный автомат и т.п.) иметь адекватные и безопасные языковые конструкции, шаблоны, библиотечные функции и т.п. Таким образом, каждое пересечение - это сигнал о ненадежности алгоритма.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 17:42 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Да, полностью согласен. Не нужно делать из Дракона инструмент для проектирования систем. Для этого нужно нечто, основанное на теории систем (в принципе, ясно уже, что :-) ). Дракон-схемы должны оставаться небольшими описаниями логики в каждом узле системы, которые (узлы) между собой (асинхронно) взаимодействуют, через некие связи. И со связями этими работаем на отдельном уровне, другим графич. языком-инструментом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 18:03 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Цитата:
Ну как веб-сервер открывает сессию на каждого посетителя...

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

Но я не вижу, как это понимание облегчает формализацию отображения поведения взаимосвязанных автоматов.


Последний раз редактировалось TMX Четверг, 17 Апрель, 2008 20:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 19:59 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Буч, Якобсон и Рамбо уже изваяли всеохватный UML.
Создадим больше шаблонов, методов, частных решений и наиболее удобных для них представлений!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 20:09 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
В UML беда в том, что хотя позиционируют его как "универсальный язык моделирования", он насквозь привязан к абстракциям конкретной парадигмы конкретных языков программирования. В итоге язык не для думания, а гремучая смесь, с одной стороны, в качестве костылей к С-плюсам, с другой - для имитация думания перед манагерами... :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 20:26 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Похоже, здесь то же самое назревает.
Есть методика ДРАКОН.
Вполне осмысленная и законченная.
Подходит для множества задач описания поведения систем.

Есть недостатки и достоинства.
Хотелось бы обсудить недостатки и исправить их ко всеобщему удовольствию.
Может быть, дополнить какими-то декларативными элементами.

Проблема UML и ООП тоже в том, что они как раз ориентированы на декомпозицию по объектам. А также для объемных систем, ориентированных на операции с БД.
Вот приходит программист, хочет сделать визуальный мегаредактор.
Говорит:
"Вот такие у меня будут классы, в них вот такие методы, вот интерфейсы. Инкапсуляция! Использовать будем вот такие шаблоны. Если что, потом можно будет легко изменить - наследуемость!".
Нарисовал диаграмму классов.
Ок. Сваял.
Начинает описывать поведение системы. Проблем нет - применим сессии! И обмен сообщениями!
Нарисовал диаграмму потоков данных.
Ну получил компонент сообщение, что он делать-то должен?
Делает вывод: методы неправильные. Шаблоны не те. Слоев мало.
Ерунда - наследуемость и полиморфизм нам помогут!
И так далее.

Пользователю ведь что надо?
Мое мнение:
Пользователь при пользовании создает в сознании модель, описывающую поведение программы. С которой он обращается через интерфейс. Деталей реализации он не знает.
А программист имеет набор сценариев на UML. Которые реализует. И полиморфизм, конечно.
Что получаем в итоге?
MS Word 2007, который все может, но по какой логике делаются отступы при форматировании списков пользователь понять не в состоянии.

С модели поведения системы и надо начинать создавать интерфейсы пользователя.
А что мы имеем для этого? Сценарии - частные случаи. Машины состояний - отлично описывают, но убогое представление. Блок-диаграммы - показывают реализацию, но только для частных случаев. Да, есть CASE-средства, которые ловко все это увязывают. Гиперссылки опять же.
Да это сам архитектор системы не в состоянии в голове удержать!
А пользователь?


Последний раз редактировалось TMX Четверг, 17 Апрель, 2008 21:10, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 20:36 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Геннадий Тышов писал(а):
Это пример Дракон-схемы сформированной в Дракон-редакторе:
Изображение

Уважаемый Геннадий, не удается открыть приведенные вложения :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 22:06 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
TMX писал(а):
Похоже, здесь то же самое назревает.
Есть методика ДРАКОН.
Вполне осмысленная и законченная.
Подходит для множества задач описания поведения систем.

Есть недостатки и достоинства.
Хотелось бы обсудить недостатки и исправить их ко всеобщему удовольствию.


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

Цитата:
Может быть, дополнить какими-то декларативными элементами.

Проблема UML и ООП тоже в том, что они как раз ориентированы на декомпозицию по объектам. А также для объемных систем, ориентированных на операции с БД.



Проблема UML во-первых в том, что это блок-схемы со всеми их неискоренимыми недостатками. Во-вторых, в UML презентационная составляющая, форма явно превалирует над содержанием.

Кстати, всё предыдущее обсуждение было посвящено алгоритмам, а не структурам данных, поэтому приведенные Вами примеры из мира ООП просто не по теме. Термины "инкапсуляция" и "шаблоны" мною использовались в общечеловеческом смысле, а не как часть ООП и шаблоны C++.

Цитата:
С модели поведения системы и надо начинать создавать интерфейсы пользователя.
А что мы имеем для этого? Сценарии - частные случаи. Машины состояний - отлично описывают, но убогое представление. Блок-диаграммы - показывают реализацию, но только для частных случаев. Да, есть CASE-средства, которые ловко все это увязывают. Гиперссылки опять же.
Да это сам архитектор системы не в состоянии в голове удержать!
А пользователь?


Вот эти недостатки и надо исправлять. А Дракон - это всё-таки динозавр из прошлого с кульманами, ватманами, ЕС ЭВМ и т.п. - нет смысла исправлять пусть замечательный, но устаревший продукт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 23:16 

Зарегистрирован: Среда, 09 Апрель, 2008 17:42
Сообщения: 21
Сергей Прохоренко писал(а):
Не хочу Вас разочаровывать, но это в первую очередь форум Оберона/Компонентного Паскаля, а не Дракона. Дракон здесь обсуждается, насколько я заметил, постольку поскольку он может быть полезен для оберонщиков. Они же его рассматривают как средство, а не как цель, на которую нужно тратить усилия, доводя до совершенства. Будет у них собственный интерес в Драконе - будут улучшать. А если решат, что Дракон - лишь полезный образец для какой-то более глобальной задумки, то вряд ли им будет интересно исправление его недостатков (хотя исследование недостатков явно интересно). Пока что Дракон оказался полезен как первый вариант графического описания конечного автомата, как один из лучших образцов блок-схем, демонстрирующий доходчивость графического представления, и в то же время, как наглядное пособие по недостаткам блок-схем (пересечение линий и т.д.).

Да я пока не разочарован - мне интересно почитать, просто я пока практической реализации высказанных идей не представляю, хотя их следует обдумать.
На сайте оберонщиков есть тема: "Визуальный язык программирования "Дракон"." Я правильно прочитал?
Если уважаемые оберонщики решили: ДРАКОН - в топку, как динозавра, что ж - такова судьба ископаемых. Критерием будет удаление или переименование ветки.
В общем, вы совершенно правы. Будем ждать решения оберонщиков.
Сергей Прохоренко писал(а):
Проблема UML во-первых в том, что это блок-схемы со всеми их неискоренимыми недостатками. Во-вторых, в UML презентационная составляющая, форма явно превалирует над содержанием.

Ну что ж, значит, у UML проблем даже больше, чем я себе представлял.
Содержание над формой в тексте программы превалирует и что? Цель графического представления - понятность и однозначность.
Сергей Прохоренко писал(а):
Кстати, всё предыдущее обсуждение было посвящено алгоритмам, а не структурам данных, поэтому приведенные Вами примеры из мира ООП просто не по теме. Термины "инкапсуляция" и "шаблоны" мною использовались в общечеловеческом смысле, а не как часть ООП и шаблоны C++.

Не по какой теме? "Визуальный язык программирования "Дракон""? Принимаю замечание.
Товарищи оберонщики! Торжественно клянусь, что термины "классы" и "методы" я употреблял с точки зрения марксистко-ленинской диалектики, а не С++. Учение Вирта всесильно, потому что оно верно!
В оправдание хочу сказать, что на том несколько эмоциональном примере я хотел показать недостатки частого среди разработчиков мнения о вторичности алгоритмов и описания поведения программ - того, с чем имеет дело ДРАКОН. А также недостаточности средств UML для этого.
Подчеркну, что гиперссылки и средства навигации на мой взгляд - мертвому припарка, если нет нормальной модели.


Последний раз редактировалось TMX Пятница, 18 Апрель, 2008 00:00, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Апрель, 2008 23:44 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Сергей тут красиво расписался "за оберонщиков"...

Однако открытие отдельного блока на форуме и готовящееся - раздела в wiki.oberoncore.ru - как раз следствие того, что Дракон и связанные с ним вопросы представляются интересными сами по себе. Очень интересными и перспективными.

А поскольку на нашем форуме сформировалось сообщество... скажем мягко, выше среднего по Рунету уровня (профессионального, научного и культурного)... то думается, что место для "логова Дракона" неплохое :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Апрель, 2008 07:57 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1096
Откуда: Россия, Чебоксары
Илья Ермаков писал(а):
"Избавиться от пересечений" лично мне интересно в первую очередь вот с какой точки зрения: какие конфигурации графов управления это даёт и какими свойствами они обладают с точки зрения формализма преобразователей предикатов Дейкстры, по сравнению с классической "линеаризованной" топологией текстового структурного пр-я. Возможно, что избавление от пересечений будет само строго следовать из содержательных (а не эргономических) ограничений на топологию.

Подозреваю, что копать надо чуть в другом месте... Во-первых, вопрос о топологии текста не так очевиден... ИМХО, текст (код) программы, в отличие от обычной блок-схемы построен путём проекции упорядоченного графа в линию (блок-схема - это та же проекция, но на плоскость). В чём разница полученных проекций?
- блок-схема получена непрерывным (гомеоморфным) преобразованием, и поэтому однозначно соответствует исходному графу. Почему же тогда всем она не нравится? Как раз потому, что натягивание голбуса на плоскость ведёт к сильному "расползанию" (то есть чисто эргономический аспект);
- а вот в линию глобус без разрывов преобразовать невозможно, поэтому текст принципиально рваный... При этом строгий формализм преобразования позволяет делать разрывы неявными (!), в отличие от явных адресных ссылок гипертекста;
- раз пошла такая пьянка, то охарактеризуем ещё для кучи и гипертекст как неупорядоченный граф. Платой за гибкость неупорядоченных связей являются упомянутые выше явные адресные ссылки.

Всё! Других топологических различий между перечисленными представлениями просто нет!

Резюме: пересечения не имеют никакого принципиального значения, они возникают исключительно тогда, когда исходный граф имеет определённую структуру. Структуру эту можно топологически преобразовать перед натягиванием на плоскость - так мы можем избавиться от goto и, соответственно, от пересечений. Но никто никогда не гарантировал, что от этого граф упростится. Напротив, он усложняется, и зачастую существенно.
Для чего нужны такие преобразования? А для удобства анализа (в т.ч. формально-аналитического). Эргономически это почти всегда не оправдано.

Сергей Прохоренко писал(а):
Мне кажется, лучше использовать такие языковые конструкции (замкнутые, инкапсулирующие, иерархически организованные, использующие функциональный стиль программирования), которые принципиально не могут породить никаких пересечений. Пересечения - это следствие избыточной свободы системы программирования, которая (избыточная свобода) провоцируюет ошибки. Мало избавиться от оператора GOTO. Надо для наиболее часто используемых моделей и алгоритмов (конечный автомат и т.п.) иметь адекватные и безопасные языковые конструкции, шаблоны, библиотечные функции и т.п. Таким образом, каждое пересечение - это сигнал о ненадежности алгоритма.

В перечисленных конструкциях ключевые понятия - свёртка и инкапсуляция. Это на сегодня единственный известный мне метод работы со сложностью (не общего её уменьшения, нет, а просто "равномерного размазывания сложности", по выражению Седова). То есть опять же исключительно эргономический аспект!

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

TMX писал(а):
С модели поведения системы и надо начинать создавать интерфейсы пользователя.
А что мы имеем для этого? Сценарии - частные случаи. Машины состояний - отлично описывают, но убогое представление. Блок-диаграммы - показывают реализацию, но только для частных случаев.

Подозреваю, что Вы правы... Всё равно мышление человека не удаётся организовать иначе, как через точки зрения. То есть через частные проекции модели в различные системы координат... Наша задача - выбрать наиболее правильные системы координат (в UML это было сделано от потолка - то есть как констатация существующих методов и их объединение).

Меня очень интересует философский вопрос - возможен ли другой путь?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Апрель, 2008 09:58 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
Alexey_Donskoy писал(а):
...
Резюме: пересечения не имеют никакого принципиального значения, они возникают исключительно тогда, когда исходный граф имеет определённую структуру. Структуру эту можно топологически преобразовать перед натягиванием на плоскость - так мы можем избавиться от goto и, соответственно, от пересечений. Но никто никогда не гарантировал, что от этого граф упростится. Напротив, он усложняется, и зачастую существенно.

...

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



Здесь содержится неявно выраженный постулат, что исходным способом выражения алгоритма является граф. Но практика знает и другие способы, например, функциональный стиль программирования, когда порядок вычислений формируется автоматически. Или, например, оператор ForEach, создающий цикл для каждого элемента коллекции.

Да, когда-то рисование блок-схемы предшествовало кодированию, но ЯВУ позволяют во многих случаях возложить задачу формирования очередности исполнения команд на машину. В этом случае исходная модель алгоритма вытекает из специфики программируемой задачи и в большинстве случаев напоминает условия математической задачи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Апрель, 2008 10:01 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 82
Откуда: Москва
Илья Ермаков писал(а):
Да, полностью согласен. Не нужно делать из Дракона инструмент для проектирования систем. Для этого нужно нечто, основанное на теории систем (в принципе, ясно уже, что :-) ).



А можно здесь поподробнее?

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 376 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 19  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2021, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB