Slon писал(а):
т.е. полка - аналог continue/break/exit ???
...
VOT7 писал(а):
2. Использование иконы полка несколько вольное… В книгах я такое не встречал…
Здесь Владимир Паронджанов писал(а):
1.На верхнем этаже полки пишут ключевое слово, на нижнем -- значение.
...
Если внимательно прочитать в
отсылочном посте все 9 пунктов (как и рекомендуется
![Wink ;)](./images/smilies/icon_wink.gif)
), то п. 9 вызывает вопросы. Потому что опять же нужно для гибридизации рассматривать целостно синтаксис инфор-языка, правильно представляющего содержание - и уже исходя из этого, распределять его между текстом и графикой (привлекая и семантику, и прагматику). А здесь нелишне вспомнить такое замечание:
...
Имхо, реальные алгоритмы могут отличаться от теоретических, но при этом должны быть их подмножеством.
...
![Smile :)](./images/smilies/icon_smile.gif)
- трактуя теорию и как теорию информоделирования (в т.ч. алгоритмов и программ).
Конкретно по данному использованию. Идея поста, определённая как "вольная", в том, что
Полка используется как оператор "промежуточного финиша" исполнения. Но. Для финиша у нас уже есть виоп
Конец - он как раз имеет семантику выхода в вызывающий визуал. Ничего не мешает нам вставить
Конец как терминал любого промежуточного маршрута (т.е. не достигающего главного конца визуала).
Тут следует помнить, что выход на такой "промежуточный финиш" логически ничем не отличается от выхода на "главный". И так же достигается как результат выбора по какому-то условию - допустим, по нарушению инварианта, как описано здесь.
Утверждение же "каждый визуал должен иметь один конец" не соответствует смыслу алгопроцесса даже в "классическом" техноязыке (так, "зацикленный" визуал вообще конца - главного - не имеет
). И потому д.б. скорректировано так: "Визуал может иметь один главный конец маршрутной структуры (или не иметь такового, если структура "зацикленная"), а также один или любое конечное число промежуточных концов.".
Далее. Та же идея вводит и иной аспект понимания "финиша" - можно выйти не обязательно в охватывающий визуал (последним вызвавший данный; проиллюстрировано
здесь). Но, если имеются (предполагаются исполняемыми) другие визуалы - то по "промежуточному финишу" можно выйти в один из них. Это затрагивает теорию систем совместно протекающих процессов. И вызывает такие вопросы (прежде всего к автору решения):
* по "главному финишу" можно выйти таким же образом?
* если не было иерархии вызовов (как "вставок во вставки") над процессом, содержащим такой "финиш" - можно ли выйти в неиерархический ("рядом работающий") процесс?
* если указанный в таком "финиш-операторе" процесс не существует на момент "финиша" - его нужно создавать или фиксировать ошибку исполнения?
Моё мнение таково:
* Да, так можно выйти по любому "финишу".
* Думаю, нельзя. И потому выйти можно будет только в один из процессов, лежащих выше по иерархии вызовов (если таковая определена дракон-моделью). Так д.б. в стандарте языка, так д.б. заложено и в редакторе.
* Создавать не нужно. Но если указанный процесс не существует - то в силу предыдущего ответа только потому, что за время с момента порождения финиширующего процесса сам завершился (аварийно). И тут ничего не поделаешь.
Ессно, тут возникают вопросы с параллелизмом процессов - он же вроде не имеет отношения ко вставкам? Но. Каждый процесс в такой системе также порождается другим - посредством сообщения "Пуск". Эта связь и играет ту же роль, что вызов во вставке. И есть единственный системный процесс (напр., ядра УП), который "всех породил" и в этом случае. Ему в общем случае и получать сообщения о выходе "мимо вставок" - и обрабатывать эти ситуации.
Возможно, это требует уточнения грамотными "системщиками".
Что из сказанного анализа прагматики/семантики следует для синтаксиса? А то, что в любом случае можно (и нужно, исходя из смысла) использовать графику
Конец для обозначения, по крайней мере, случая выхода только в охватывающий алгопроцесс - где бы этот конец ни располагался в "финиширующем" алгопроцессе. Вот насчёт случая, когда сочинитель допускает (а гибридизируемый язык предоставляет ему) возможность выхода не прямо в охватывающий - тут синтаксис должен это отражать. Но опять же - не обязательно полностью исключать графику
Конец. Можно ввести особый текстовый синтаксис, можно предусмотреть боковик для этого случая. В общем, думать надо... но всегда - опираясь на семантику и прагматику.
И ещё. Сказанное никак не связано с тем, идёт ли речь о программных системах или о "ручных" бизнес-процессах (или о смешанных системах). Потому что в любом случае говорилось об информоделировании. А это значит, что любой исполнитель, независимо от его природы, рассматривается как информатически формальный.