Вот какие мысли вызывает чтение проекта Оберон применительно к структурному редактированию.
1. Подтверждается, что человекочитаемые формальные описания д.б. иерархичными. Иначе говоря, сказанное А. Донским здесь:
viewtopic.php?p=72552#p72552 следует относить не только ко внутренней структуре программно-строгого описания, но и ко всей формализации. О чём, в сущности, и была вся
эта страница...
Возможный состав уровней иерархии м.б. найден из определения процесса моделирования/формализации (или его свёртки). Принимая определение на основе Леонтьева-Грековой-Фридланда, как раз имеем необходимость свёртки. Она довольно очевидна из той же Грековой, Акимова, а также из принципов инженерного программирования, и даёт три уровня: качественный ("предметный"), [логико-]математический, информатический.
2. Описания одного уровня также м.б. иерархичными, но уже "блочно" - относясь к различным областям связанных описаний других уровней (обычно соседних). Это хорошо видно на комментированных исхтекстах книги - напр., процедуры Edit на с. 125-127.
3. Названные иерархии надо представлять совмещённо. В граф-базированной форме записи пригоден (хотя и не вполне адекватен) механизм областей с примечаниями при некоторой дисциплине введения областей. Адекватность достигается счетанием с примечаниями к вершинам графа и с комментированием непосредственно в тексте вершин.
Однако, следуя замечанию Ермакова о необходимости изоморфных представлений одного предмета формализации, нужно иметь также чисто текстовые средства выражения. Принятые Виртом и Гуткнехтом (раздельная запись программно и качественно формального текстов со связью их по индексам элементов - в данном случае абзацев) наиболее очевидны, но не оптимальны для восприятия.
Перспективным средством можно считать псевдографические знаки "структурная скобка". В РВ-проекте они применяются для выделения блоков прогтекста. Но также можно использовать их "по-гостовски" - выделяя области соотношения друг с другом текстов разной формализованности. Вполне очевидно, что на плоскости естественно отражается т.о. лишь парное отношение. Для отражения более глубокой иерархии нужно привлекать разные по форме знаки для представления переходов между разными уровнями.
При оптимизации представления нужно учесть также иерархию по степени формализации. В связи с этим очевидно, что возможны разные варианты построения по порядку прохождения иерархии - "от качественного" или "от программного". В первом случае организуется связно текст наименее формальный, а каждое устрожение (лежащее уровнем ниже по иерархии) представляется как фрагменты, относимые к участкам вышележащего уровня. В втором случае, напротив, связен более формальный текст, а фрагментарны его непосредственное ослабление и формализации иных менее строгих уровней (лежащих выше по иерархии).
При реализации такой схемы можно исходить из следующего.
* уровни описания совмещаются по горизонтали, т.е. каждой степени формальности соответствует колонка;
* текст м.б. сформирован как "отчёт" (вьюшка) от граф-базированной записи, причём уровни в отчёт включаются по выбору;
* для отражения соответствия "один в один" можно применять "формальное комментирование".
Примерно так. Интересны будут другие мнения.