Сергей Прохоренко писал(а):
Из насыщенного обсуждения
здесь и
здесь я сделал следующие выводы применительно к PureBuilder:
В PureBuilder не применяются операторы перехода goto и операторы досрочного выхода exit, break, exit when, continue, return и аналогичные им....
Добавляет интереса к готовому изделию
![Smile :)](./images/smilies/icon_smile.gif)
... наряду с подходом к показу связанности частей в различных аспектах:
Таблицы - не лучшая форма для наглядного изображения алгоритмов с циклами и ветвлениями. Вот использовать таблицы для объявления и спецификации переменных - другое дело!
...
Восприятие в любом случае фрагментами - голова ведь не ризиновая. А интеграция этих кусочков <модулей, процедур> в единое целое должна происходит на вкладках "модуль" и "проект". Кстати, там как раз должно использоваться изображение в форме графа. Реализация соответствующего интерфейса довольно сложна - ведь проблемы графов никуда не деваются, но форма графа здесь очень хороша для восприятия человеком. Однако изобразить в форме графа только крупноблочную структурную схему гораздо проще и дешевле, чем весь алгоритм...
Тут единственное что - структуру программы "с деклар-стороны" тоже можно показать графово - см.
это предложение. Там предполагается, что таблица атрибутов (включая значение по умолчанию для переменной) связана с вершиной атомарного типа. Т.е. как раз имеем метод "ГРАФика И Текст/Таблицы"
![Smile :)](./images/smilies/icon_smile.gif)
(предполагая, как обычно, что он реализован для показа/редактирования наряду с представлением в "чистом тексте").
Сергей Прохоренко писал(а):
...В то же время, попытка все условия запихнуть в заголовок цикла приводит к совершенно нечитабельному коду такого вида:
Код:
WHILE (b # NIL)
& P(b) & P2(first, b)
& P3(ta, tb, init_transformed)
& (~P4() OR (f(b) = count))
DO
Это, конечно, совершенно неприемлемо....
Т.е. правильно, скажем, не продолжать
в этом примере дальше линеаризовать тела ЦД-ветвей (в принципе можно, но тогда появится третья ветка)? А вообще если показывать логику дракон-развилками, как предлагается в /Паронджанов, 2001, Гл.9/ (и сделано для входов в ЦД-ветви в примере) - как это Вам?
Сергей Прохоренко писал(а):
...
Булевы функции в PureBuilder могут задаваться в табличной форме, аналогичной построителю запросов в MS Access, или таблицами истинности. Такие функции удобны для применения в качестве условий в условных операторах и операторах циклов.
Это не похоже на таблицы решений
здесь? Кстати, есть и "графит-метод" -
решающие диаграммы - как Вам?