Рэйлвэй Каген писал(а):
Цитата:
"Посмотрите на диалог Паронджанова с ain'ом..."
Владимир Паронджанов ищет "функционально завершенные" состояния будущей системы, подталкивая ain'a к более четким определениям функций системы(перечня действий) и выделению сущностей, с которыми работают эти функции.
Уважаемый Рэйлвэй Каген!
Если говорить по-крупному, я с Вами согласен. Но есть деталь, которая у меня вызывает сомнения. Я имею в виду понятие "состояние" (состояние конечного автомата).
Хочу изложить свое (возможно, ошибочное) мнение по этому вопросу.
Мне кажется, следует различать две трактовки дракон-схемы силуэт.
Первая трактовка ни у кого не вызывает сомнений. Силуэт - это конечный автомат, который может иметь разные состояния. Это часто подчеркивает Илья Ермаков. Много пракических примеров, где демонстрируется плодотворность такой трактовки, дал ТМХ.
viewtopic.php?p=14450#p14450 Вторая трактовка (на которую, как мне кажется, не обратили внимания) - это возможность трактовать силуэт как модификацию метода структуризации программ Ашкрофта-Манны. Об этом я говорил здесь (см. Замечание 3 и замечание 4)
viewtopic.php?p=13427#p13427Во втором случае задача состоит в том, чтобы
дать наиболее ясное и понятное представление структуры (любой) сложной процедурной задачи (алгоритма).
Понятие "алгоритм" шире, чем понятие "автоматный алгоритм".
Понятие "процедурное программирование" шире, чем понятие "автоматное программирование"
Понятие "процедурный язык" шире, чем понятие "автоматный язык".
Я хочу сказать, что дракон - процедурный язык. Мне кажется, когда Илья Ермаков говорит, что Дракон - структурно-автоматный язык, он неоправданно сужает сферу возможного применения языка Дракон.
Перейду к изложению сущности второй трактовки понятия "силуэт".
При второй трактовке понятие "состояние" перестает быть плодотворным. Необходимость в таком понятии отпадает. Ветка при этом трактуется не как "состояние". А как важный структурный (и СМЫСЛОВОЙ) элемент алгоритма (программы).
Примером такой ситуации является задача, которую попытался решить ain.
Если я правильно понимаю ситуацию, ain уже давно написал свою программу. И она успешно работает.
Зачем-же он решил потратить свое драгоценное время на "возню" с Драконом?
По-моему, для того, чтобы получить более ясное представление о своей программе, взглянуть на нее под другим, более выгодным углом зрения.
Вот как я понимаю работу с ain.
А теперь вопрос. Разве ain'у было бы лучше, если бы я стал говорить про конечный автомат и его состояния? Думаю,что нет. Получилось бы неоправданное наукообразие и нагромождение ненужных, избыточных понятий, без которых вполне можно обойтись. И которые ровным счетом ничего не дают для понимания сути дела. А я бы попал в дурацкое положение тех людей, про которых говорят: "Они хочут свою образованность показать".
Поэтому я воспользовался "бритвой Оккама", которая беспощадно отсекает все, без чего можно обойтись. Оккам говорил: "Не умножайте сущности без нужды".
В заключение хочу подчеркнуть: вполне возможно, что я ошибаюсь (это со мной не раз бывало). Кроме того, я сильно рискую, пытаясь говорить о намерениях ain. И о том, какую задачу он перед собой ставит. Я надеюсь, что он сам за себя скажет. И сделает это гораздо лучше меня.