Владимир Паронджанов писал(а):
Поскольку конструкции Дракона "не ложатся, точнее, не всегда ложатся" в конструкции текстовых языков, возникает вопрос, как быть?
...
Выходит, что союз дракон-Оберон не может быть ИДЕАЛЬНЫМ? Или я что-то напутал?
Хочу высказать одну идею, которая уже давно витает у меня в голове. Над реализацией пока не думал. Но ведь мысль первична
. Не будет идей -- не будет и реализации.
Работая с исходниками Блэкбокс (и другими), я обратил внимание, что требуется много усилий (если модуль большой, как Kernel, например) для того чтобы обрести ясность что делает та или иная процедура, и как она используется в самом модуле. Эти затруднения произростают из того, что модуль имеет линейную структуру (по форме). Те представления о структуре модуля, которые подразумевал программист на момент написания, оказываются безвозвратно потеряны. Просто просматривая длинную вереницу процедур, трудно понять какие из них являются ключевыми, а какие служат лишь для того, чтобы обеспечить реализацию этих ключевых процедур.
Идея, собственно, состоит в том, чтобы создать такую IDE, в которой
структура модуля разрабатывается на Драконе. Далее, двойной клик по иконке раскрывает окно с текстом процедуры, написанной в обычном традиционном стиле, например, на Обероне. То есть Дракон-схема выполнят в том числе роль своеобразного инспектора объектов.
Идейка, конечно, пока сыровата. Как всегда обычно бывает, есть много нюансов. Вместе с тем открываются и новые не виданные доселе возможности. Например, условный вызов процедур. Хотя полезность от таких возможностей пока не очевидна и, наверное, спорна.
Ещё хочу высказать своё предположение о том, что язык Дракон предлагает свой способ борьбы со стилем "спагетти", отличный от классических принципов структурного программирования. Здесь тоже спасение в структурах, но иная реализация. Может именно этим объясняется то, что некоторые драконовские схемы, которые трудно обвинить в неструктурности, "не ложатся" на тот же Оберон или КП.