DRAKON.SU
https://forum.drakon.su/

Вопрос новичка про полку
https://forum.drakon.su/viewtopic.php?f=172&t=2486
Страница 1 из 1

Автор:  Slon [ Пятница, 26 Март, 2010 06:23 ]
Заголовок сообщения:  Вопрос новичка про полку

Не могу понять, что делает элемент "полка".
В документации вообще ничего толком.
Или плохо искал?

Автор:  Владимир Паронджанов [ Пятница, 26 Март, 2010 10:43 ]
Заголовок сообщения:  Re: Вопрос новичка про полку

Функции иконы полка

1.На верхнем этаже полки пишут ключевое слово, на нижнем -- значение.

2.Пример. Посмотрите пример на стр. 160, а так же рис 81 на стр. 162, 163 книги «Как улучшить работу ума…»

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

4. Очень важно!
viewtopic.php?p=42041#p42041
Просьба прочитать все 9 пунктов

Автор:  Slon [ Пятница, 26 Март, 2010 10:48 ]
Заголовок сообщения:  Re: Вопрос новичка про полку

т.е. полка - аналог continue/break/exit ???

Автор:  Владимир Паронджанов [ Пятница, 26 Март, 2010 12:46 ]
Заголовок сообщения:  Re: Вопрос новичка про полку

Я поправил мой предыдущий ответ.
__________________________________

Дополнительные иллюстрации и пояснения к иконе полка

:arrow: viewtopic.php?p=16946#p16946
см. п. 10 и 11.

:arrow: viewtopic.php?p=15353#p15353
см. п.2

:arrow: viewtopic.php?p=21901#p21901
см. п. 1 и вложение

:arrow: viewtopic.php?p=22679#p22679
Рэйлвэй Каген писал
Цитата:
"полка" - почти универсальное средство решения мелких проблем.

Автор:  Владислав Жаринов [ Вторник, 16 Август, 2011 08:44 ]
Заголовок сообщения:  О завершении алгопроцесса

Slon писал(а):
т.е. полка - аналог continue/break/exit ???

Ильченко Эдуард в viewtopic.php?p=64271#p64271 писал(а):
...
VOT7 писал(а):
2. Использование иконы полка несколько вольное… В книгах я такое не встречал…
Здесь
Владимир Паронджанов писал(а):
1.На верхнем этаже полки пишут ключевое слово, на нижнем -- значение.
...
Если внимательно прочитать в отсылочном посте все 9 пунктов (как и рекомендуется ;)), то п. 9 вызывает вопросы. Потому что опять же нужно для гибридизации рассматривать целостно синтаксис инфор-языка, правильно представляющего содержание - и уже исходя из этого, распределять его между текстом и графикой (привлекая и семантику, и прагматику). А здесь нелишне вспомнить такое замечание:
Ильченко Эдуард в viewtopic.php?p=64265#p64265 писал(а):
...
Имхо, реальные алгоритмы могут отличаться от теоретических, но при этом должны быть их подмножеством.
...
:) - трактуя теорию и как теорию информоделирования (в т.ч. алгоритмов и программ).

Конкретно по данному использованию. Идея поста, определённая как "вольная", в том, что Полка используется как оператор "промежуточного финиша" исполнения. Но. Для финиша у нас уже есть виоп Конец - он как раз имеет семантику выхода в вызывающий визуал. Ничего не мешает нам вставить Конец как терминал любого промежуточного маршрута (т.е. не достигающего главного конца визуала).
    Тут следует помнить, что выход на такой "промежуточный финиш" логически ничем не отличается от выхода на "главный". И так же достигается как результат выбора по какому-то условию - допустим, по нарушению инварианта, как описано здесь.
    Утверждение же "каждый визуал должен иметь один конец" не соответствует смыслу алгопроцесса даже в "классическом" техноязыке (так, "зацикленный" визуал вообще конца - главного - не имеет ;)). И потому д.б. скорректировано так: "Визуал может иметь один главный конец маршрутной структуры (или не иметь такового, если структура "зацикленная"), а также один или любое конечное число промежуточных концов.".
Далее. Та же идея вводит и иной аспект понимания "финиша" - можно выйти не обязательно в охватывающий визуал (последним вызвавший данный; проиллюстрировано здесь). Но, если имеются (предполагаются исполняемыми) другие визуалы - то по "промежуточному финишу" можно выйти в один из них. Это затрагивает теорию систем совместно протекающих процессов. И вызывает такие вопросы (прежде всего к автору решения):
    * по "главному финишу" можно выйти таким же образом?
    * если не было иерархии вызовов (как "вставок во вставки") над процессом, содержащим такой "финиш" - можно ли выйти в неиерархический ("рядом работающий") процесс?
    * если указанный в таком "финиш-операторе" процесс не существует на момент "финиша" - его нужно создавать или фиксировать ошибку исполнения?
Моё мнение таково:
    * Да, так можно выйти по любому "финишу".
    * Думаю, нельзя. И потому выйти можно будет только в один из процессов, лежащих выше по иерархии вызовов (если таковая определена дракон-моделью). Так д.б. в стандарте языка, так д.б. заложено и в редакторе.
    * Создавать не нужно. Но если указанный процесс не существует - то в силу предыдущего ответа только потому, что за время с момента порождения финиширующего процесса сам завершился (аварийно). И тут ничего не поделаешь.
Ессно, тут возникают вопросы с параллелизмом процессов - он же вроде не имеет отношения ко вставкам? Но. Каждый процесс в такой системе также порождается другим - посредством сообщения "Пуск". Эта связь и играет ту же роль, что вызов во вставке. И есть единственный системный процесс (напр., ядра УП), который "всех породил" и в этом случае. Ему в общем случае и получать сообщения о выходе "мимо вставок" - и обрабатывать эти ситуации.
Возможно, это требует уточнения грамотными "системщиками".

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

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