> -- AVC писал(а):
> В Си++ активно используются конструкторы/деструкторы вместе с исключениями.В Обероне нет утечек памяти, как в Си/Си++, но есть другие ресурсы, за  возвращением которых системе можно было бы следить с помощью какого-либо аналога деструкторов.Как вы считаете, было бы полезным ввести в Оберон/КП аналог (возможно, по другому реализованный) деструкторов (прежде всего)?

Ну пока в обероне нет исключений, то можно как-то жить и без деструкторов. При наличии исключений - да, совсем грустно. Можно попробовать пообсуждать возможные решенияНапример:
1) Связываем с записью процедуру-деструктор. Для определенности назовем такую запись по аналогии с C# - disposable.
2) Деструктор вызывается при выходе disposable-записи из области видимости.
3) disposable-запись можно передавать "вниз" (как параметр процедуры) и "вверх" как результат функции.
4) Если disposable-запись была возвращена как результат, то деструктор для нее в текущей процедуре не вызывается.
5) В вызывающей процедуре disposable-запись "принимается" "инициализацией по месту" локальной переменной.
6) disposable-запись, переданную как аргумент, нельзя вернуть (можно попробовать разрулить это чисто синтаксически, сделав несовместимыми тип аргумента и тип возвращаемого значения).
7) disposable-запись может быть только локальной переменной или полем агрегирующей disposable-записи.