Цитата:
Отказ от картографического принципа недопустим, так как открывает дорогу хаосу.
Ранее в теме был "кричащий" пример нарушения картографического принципа:
https://forum.drakon.su/viewtopic.php?f=228&t=6666&start=40#p103887Это пример-набросок "классической" задачи линейного поиска, в сопоставлении с текстовым формализмом с целью подчеркнуть принципиальную разницу между "классическими одномерными" текстовыми структурами (и, к примеру, с "двумерными" структурами Р-схем) и "двумерной структурностью" ДРАКОН-а. Так "цикл со стрелкой" в ДРАКОН-е не является строго замкнутой, обособленной структурой, "вопросы" в качестве условия цикла сразу же образуют дальнейшие самостоятельные маршруты, тем самым имея шанс избежать дублирующих проверок после цикла. Фактически, структуры внутри примитива/ветки представляют из себя произвольное переплетение маршрутов лишь с ограничением пересечений плюс методологические требования в виде картографического принципа (видимо, и ряда других. Также есть исключение в виде цикла "для" с дополнительными неявными ограничениями для полной локализации возникающего участка схемы). Если не ошибаюсь, ДРАКОН-методология целенаправленно предполагает ликвидацию ряда ограничений "одномерной структурности" исходя из тезиса о том, что ограничения были связаны с недостаточностью выразительности средств представления алгоритмов.
Чуть расширим исходный алгоритм:
Вложение:
20191104163851.png [ 24.32 КБ | Просмотров: 8891 ]
В данном случае в начале есть проверка "пустоты" последовательности (напр., массива), и при необходимости выполняется некое переключение на последовательность по умолчанию для поиска.
Схема лишь подчёркивает иную возникающую "когнитивную" особенность. В "одномерных" структурах условия отделены друг от друга согласно семантическим конструкциям (напр.: "while...end; if ... end". В Р-схемах предикаты также семантически отделены в привязке к структурам). В ДРАКОН-е условия из различного семантического контекста могут быть тесно переплетены. Так из "конец последовательности поиска? -- нет" сразу "упираемся" по маршруту опять же в "конец последовательности поиска?". В данном случае "когнитивного напряжения" нет, но об этом далее.
На схеме также добавлена некая "содержательная" обработка найденного состояния, чтобы подчеркнуть, что из выходов цикла сразу же могут быть "полноценные" произвольные маршруты. Соответственно эти маршруты, также и "вопросы" как условия циклов, должны подчиняться всем общим правилам.
Таким образом, схема выше построена на принципах, напоминающих примеры в начале темы -- максимально по возможности указать все связи явно ("не отходя от кассы"). Как указал автор в самом начале темы: "не нужно заморачивать себе голову ... искусственными проблемами".
Однако, в данном случае нарушен картографический принцип, поскольку главный маршрут приводит к неудачному результату, а "успешные" действия определены где-то в стороне, на побочных маршрутах.
Недопустимо, вынуждены отклонить такую схему (хаос неприемлем).