> -- ___ писал(а):
> в статье Руслана Богатырева  сказано:"В Обероне есть три кита, на которые опирается его философия (см. "От Modula к Oberon"):   1. процедурные типы (процедура как тип, коммутация функций);   2. модули (единица компиляции и загрузки, основа построения компонентов);   3. расширение комбинированного типа (расширяемые записи, альтернатива ООП и основа динамической эволюции систем)."в разделе документации бб "Cоглашения по написанию кода":"Старайтесь избегать супервызовов и процедурных типов."получается, что в один из китов Оберона в КП уже не кит совсем? %)или как правильно интерпретировать...

Классический Оберон и КП -- языки немного разные. Один создает основу для ООП, второй ее конкретизирует. Основу ООП в Обероне нельзя обеспечить без процедурных типов (не из чего иначе делать методы). В КП есть обе вещи (type-bound procedures и процедурный тип). Одна вроде как другой мешается. Она ей без надобности, потому и рассматривают процедурный тип как объект для хирургического вмешательства.

Процедурный тип, насколько помню, идет у Вирта еще от Mesa. Проблема в том, что присваивания у процедурных переменных никак не контролируются (не трассируются), а потому можно сильно вляпаться -- пресловутый висячий указатель. Вывод: если это средство использовать надежно, требуется устанавливать над ним контроль. Это можно сделать.