> -- Comdiv писал(а):
> Представим, что это глючное приложение было бы написано на Обероне. Моя задача была бы очень простой: достаточно было бы перенести компактные секции инициализации в процедуры, проследить порядок загрузки модулей, выведя при загрузке имена модулей в лог, и при запуске мидлета выполнить в этом порядке процедуры.
И это было бы ошибкой. Насколько я помню, описанием языка никак не гарантирована очередность инициализации модулей. Также не гарантировано сохранение оной очередности от запуска к запуску. Также нет средств для управления таковой очередностью. Т.о. выявив один раз очередность запусков и завязав на нее логику программы, вы получаете UB.

В С++ эта проблема решается. В Аде она решается ещё проще и возможностей по контрою элаборации там значительно больше. Вплоть до явного указания кто и после кого.