Дмитрий Дагаев писал(а):
Ошибки - отсутствие икон действие в местах, отмеченным красным, приводящие к бесконечному циклу.
Значения q10 и q11 неопределены. Это означает что возможен и выход из цикла.
К тому же q10 и q11 могут быть определены в d0 (см. икону Действие в начале).
Здесь же q10 и q11 просто placeholder'ы, которые ожидают своего наполнения.
Дык как я понимаю Дмитрия, он и говорит, что только после наполнения порой мы можем судить о реальном поведении процесса (системы "параллельных" процессов в общем случае). Вот Илья же привёл пример взаимодействия с "внешним объектом"... а что мы знаем о такой возможности, пока не определили, будет ли такое взаимодействие?..
Потому и Пётр говорит о декларативе... видимо, имеется в виду что-то такое:
...
И снова вопрос - а что будет, если в этой конструкции оставить хотя бы одну из вертикалей ненагруженной?
Ответ: Т.к. мы исходим из того, что в развилках только проверяются логотношения между величинами, фигурирующими в шампур-блоках ветвей, то при исполнении такой конструкции будет происходить следующее. После прохода ненагруженной вертикали состояние визуала не изменится (мы ведь ничего не делали для этого) и произойдёт возврат в начало цикла Дейкстры. При дальнейшем выборе состояние опять не изменится, следовательно, исполнитель придёт к той же вертикали. Легко видеть, что произошло "зацикливание". Если ненагружены несколько вертикалей, то "зациклится" самая левая из них (ближняя к шампуру).
В то же время некоторые прогязыки допускают в условном операторе вычисляемые выражения; членами выражения м.б. различные функции языка (среди которых м.б. и ввод). По сути, вершина "условие" тем самым неявно превращается в конструкцию следования из рабочего шампур-блока вычисления выражений и собственно условного оператора, в который результаты вычисления подставляются. При допущении такого текста в иконах Развилка (Выбор, Вариант) получаем, что для изменения состояния необязательно иметь шампур-блок в плече развилки; это будет делаться перед ней.
...
- ну и дальше там обсуждается то же, что в предыдущем посте - отделение "обрабатывающих" вычислений от "охранных"...
Вот вам и декларатив - в виде состояний предметки... и связи их по ходу процесса, не обязательно повторяющей связи на структуре маршрутов процесса...
Насчёт множественности входов/выходов в цикл на приведённом примере структуры маршрутов. Как я понимаю, Дмитрий, Вы хотите сказать, что если какой-то маршрут от одного выхода какой-то развилки ведёт на цикл (как выделенный Вами в этой схеме) - то и все остальные маршруты от выходов той же развилки должны вести на тот же цикл?.. Грубо говоря, для каждой отдельно взятой развилки всё "поддерево маршрутов", над которым она доминирует, должно находиться "внутри" цикла?