> -- Илья Ермаков в viewtopic.php?p=53622#p53622 писал(а):
> Вот у меня есть группа динамических объектов в куче, каким-то образом связанных и взаимодействующих. Между чем же будет устанавливать связи редактор? Редактор даже не может знать, куда же ведёт виртуальный вызов obj.Method, ибо это будет зависеть от динамического типа obj во время выполнения программы.Проблема серьёзна, она в разнице между временем разработки-компиляции и временем выполнения. Любой язык описывает сущности времени разработки и связи между ними. Сущности времени выполнения появляются в процессе исполнения. И их жизнь и взаимодействие описываются иногда сложной системой связей-правил. Вот эту систему приходится восстанавливать в голове из статической программы. Как бы её описывать? Тут есть над чем крупно подумать.
Вообще это та же проблема обеспечения "тематического обзора" модели (т.е. возможности дать при сочинении закрытый перечень её состояний при исполнении), что решалась и в model checking. В принципе очевидный путь выбран при реализации этого метода в средах автоверификации - ввести конечные множества типов, сочетания которых при исполнении (имитации исполнения) можно перебрать и проверить на соответствие логическим требованиям. Также можно поступить и для представления самой модели программы (кстати, её текстовая форма просто менее удобна для наглядного описания, чем "графитная" - сама по себе возможность описания от формы, конечно, не зависит - только от конечности модели). При этом описываются альтернативы динамики через условные динамические связи между сущностями. Вот над языком обообщённого представления таких связей стоило бы подумать. Для конечных множеств можно подумать и об автоматическом построении всех сочетаний - но это д.б. не так-то просто... Возможно, реальнее на сегодня ограничиться возможностями проверки моделей - делать описание статическое, а затем "проигрывать" его в среде верификации для заданных условий и смотреть, что получается...

Кстати, ещё о представлении структур данных. В свете замечаний того же Вирта интересно рассмотрение влияния способа информатизации тех же графов на эффективность работы с ними. Вот в работе: Овчиников В.А. Алгоритмизация комбинаторно-оптимизационных задач при проектировании ЭВМ и систем. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001 приведены 10 способов представить граф как списковую структуру (то же вкратце рассмотрено в: Иванова Г.С. Технология программирования. - М.:Кнорус, 2011). Наверное, тот или иной способ для какой-то цели представления в чём-то более удобен, а в чём-то менее...