Владимир Паронджанов писал(а):
В дракон-схемах нет отдельного понятия "фигура" (по ГОСТу "символ", в просторечии "блок").
Есть понятие:
Икона = Фигура + Линия (Линии)
Поэтому рассуждать о графах нужно осторожно, с учетом этого обстоятельства.
Пример 1. Икона Пауза содержит вертикальную линию вверх и вниз.
Пример 2. Икона Синхронизатор содержит горизонтальную линию справа.
Пример 3. Икона Вопрос имеет три линии: вверх, вниз и вправо.
А если образ иконы "Вопрос" содержит линии слева, вниз и вправо, то возникает "Иначе Вопрос", решение для компактификации:
https://forum.drakon.su/viewtopic.php?f=62&t=6443#p102521И, как я понимаю, решение выше является вполне "валидным" Дракон-ом. Рассматриваемая здесь икона "временная вставка", фактически, была "введена официально". Ранее в теме был специальный акцент на том, что достаточно лишь иметь предварительные объяснения предполагаемой семантики (однако, непонятно чего именно -- граф следования в Дракон-схемах необходимо ещё "выкапывать", целая "наука", видимо, предполагается семантика некоего исчисления икон) -- и такой новый Дракон вновь валидный.
В самом деле, основатели Дракон-а в контексте определенной предметки -- алгоритмы, управляемые временем -- позволили себе иметь специализированный набор икон с возможностью компактификации схем (собственно то, для чего Дракон и создавался, насколько я понимаю). Почему же тогда теперь прочие пользователи должны подвергаться какой-то "дискриминации".
Таким образом, вроде бы, не должно быть преград, например, задействовать прочие варианты линий для всё того же образа фигуры "вопрос":
Вложение:
quest.png [ 5.74 КБ | Просмотров: 6916 ]
Первый образ иконы "вопрос" есть "Вопрос-проверка" -- аля assert -- если условие не выполняется (после "отработки" иконы слева), то наступает крах алгоритма (исключительная ситуация, нет никаких альтернатив для "вопроса"):
Код:
x := calc();
assert(x > 0);
...
Второй образ иконы "вопрос" есть "Вопрос-защита" -- как защитное выражение для условного вычисления значения -- краткая форма в ряде формализмов, как в теориях, так и, напр., во многих функциональных или скриптовых языках программирования:
Код:
y := calc1() if z > 0 else calc2();
Причём прямоугольник с "calc2()" является "формальным параметром" (согласно тезаурусу Дракон-а), но, мол образованная таким способом макроикона "разберётся, что к чему".
Очень таки универсальные и к тому же межпредметные иконы, с компактификацией, с экономией пространства по вертикали и т.д.