> -- Руслан Богатырев писал(а):
> Национальное расширение языка создает проблемы для его использования на других СП данного языка, не поддерживающих это расширение. Если система программирования GPCP для .NET и Java это не поддерживают, то...

В .NET национальные идентификаторы официально разрешены. Так что GPCP для .NET изначально более "широк" нежели CP под BlackBox.

> -- Руслан Богатырев писал(а):
> Можно ли было сделать BlackBox на Обероне? Безусловно.

Нет, далеко не безусловно. Например, модуль Stores - фундамент фреймворка Блэкбокса базируется на связанных с типом процедурах, которых нет в Обероне. Вы можете объяснить как написать аналог модуля Stores на Обероне? Мне вот, например, это кажется невозможным.

Загвоздка в том, откуда в Обероне взять инициализатор объекта, т.е. аналог Internalize-метода. В Компонентном Паскале инициализатор принадлежит типу (классу объектов), а не объекту. Поэтому в КП зная тип объекта, мы знаем и его инициализатор. В Обероне же, зная тип объекта, про инициализатор ни чего не известно (инициализаторов даже может быть несколько). Под "инициализатором" в Обероне я имею в виду процедуру которая делает присваивание обработчика:
## Код:
```
PROCEDURE Init (VAR obj: MyObject);
BEGIN
  ...
  obj.handler := ThisConcreteHandler;
  ...
END Init;
```

Откуда аналогу модуля Stores написанному на Обероне узнать о каждом инициализаторе каждого типа объектов?

Способы конечно есть, но все они такие громоздкие, что лучше так не делать...

Нет модуля Stores - нет BlackBox-а.