OberonCore
https://forum.oberoncore.ru/

Средства организации модулей
https://forum.oberoncore.ru/viewtopic.php?f=6&t=707
Страница 1 из 1

Автор:  batyrmastyr [ Суббота, 27 Октябрь, 2007 18:07 ]
Заголовок сообщения:  Средства организации модулей

GUEST писал(а):
Руслан Богатырев писал(а):
Я не разделяю точку зрения Евгения Зуева по данному вопросу.

Очевидно размышления Евения Зуева лежали в области необходимости дополнительных средств организации модулей в связи с чем данное высказывание сомнительно.

Может я чего не понял, но доп. средства организации модулей, по-моему, нужны. Например, разрешение на межмодульное наследование реализации _только для ограниченного_ числа модулей (если уж приходится терпеть наличие такого наследования).

Автор:  AVC [ Суббота, 27 Октябрь, 2007 20:41 ]
Заголовок сообщения:  Re: Re:

batyrmastyr писал(а):
Может я чего не понял, но доп. средства организации модулей, по-моему, нужны. Например, разрешение на межмодульное наследование реализации _только для ограниченного_ числа модулей (если уж приходится терпеть наличие такого наследования).


Ограничение на наследование реализации уже существует в Компонентном Паскале: LIMITED (еще проще -- отказ от использования EXTENSIBLE).
А вот ограничение возможности импорта конкретного модуля -- хорошая идея.
Наверное, ее можно реализовать примерно так: ввести, наряду с секцией IMPORT, секцию EXPORT, где должны быть перечислены модули, имеющие право импорта данного модуля. (Если секция EXPORT отсутствует, то модуль импортируется как обычно, без ограничений.)
Это в качестве "затравки", т.к. должны существовать лучшие решения.

Автор:  Info21 [ Воскресенье, 28 Октябрь, 2007 05:47 ]
Заголовок сообщения:  Организация межмодульных взаимодействий (гипотезы)

AVC писал(а):
Наверное, ее можно реализовать примерно так: ввести, наряду с секцией IMPORT, секцию EXPORT, где должны быть перечислены модули, имеющие право импорта данного модуля. (Если секция EXPORT отсутствует, то модуль импортируется как обычно, без ограничений.)
Это в качестве "затравки", т.к. должны существовать лучшие решения.


Почему "должны"?
Чем это решение плохо?

(Наклевывается отдельная тема... может, сразу и выделить?)

Автор:  Илья Ермаков [ Воскресенье, 28 Октябрь, 2007 09:52 ]
Заголовок сообщения:  Re: Средства организации модулей

Выделил :-)

Автор:  Сергей Оборотов [ Воскресенье, 28 Октябрь, 2007 12:54 ]
Заголовок сообщения:  Re: Организация межмодульных взаимодействий (гипотезы)

info21 писал(а):
Почему "должны"?
Чем это решение плохо?
Это разные вопросы и ответы могут быть разные. Более общие, в том числе. В частности возможно и группирование модулей в структуры по выполняемой функции. Что-то подобное упоминалось Русланом Богатыревым в характеристиках прогнозируемого языка архитектурного уровня.
info21 писал(а):
(Наклевывается отдельная тема... может, сразу и выделить?)
Почему бы и нет. Но лучше если в её начале будет указываться какие цели она перед собой ставит. Имхо, тем кто такие предложения о переносе выдвигает.

Автор:  AVC [ Воскресенье, 28 Октябрь, 2007 13:06 ]
Заголовок сообщения:  Re: Организация межмодульных взаимодействий (гипотезы)

GUEST писал(а):
Почему бы и нет. Но лучше если в её начале будет указываться какие цели она перед собой ставит. Имхо, тем кто такие предложения выдвигает.


Например, может быть потребность в том, чтобы подсистема имела вспомогательные модули, доступные только в рамках этой подсистемы (кластера?).

Автор:  batyrmastyr [ Воскресенье, 28 Октябрь, 2007 23:46 ]
Заголовок сообщения:  Re: Организация межмодульных взаимодействий (гипотезы)

AVC писал(а):
GUEST писал(а):
Почему бы и нет. Но лучше если в её начале будет указываться какие цели она перед собой ставит. Имхо, тем кто такие предложения выдвигает.


Например, может быть потребность в том, чтобы подсистема имела вспомогательные модули, доступные только в рамках этой подсистемы (кластера?).

Простейший пример - группа модулей наподобие Files-HostFiles чтобы HostFiles был доступен для импорта только модулю Files. И так ограничить группу Host-модулей, навроде Meta - <группа Host-Kernel модулей> причем интерфейсы модулей этой группы видят только Meta и они сами.

Автор:  Илья Ермаков [ Понедельник, 29 Октябрь, 2007 00:02 ]
Заголовок сообщения:  Re: Организация межмодульных взаимодействий (гипотезы)

batyrmastyr писал(а):
Простейший пример - группа модулей наподобие Files-HostFiles чтобы HostFiles был доступен для импорта только модулю Files

Кстати, Files не импортирует HostFiles. Модуль интерфейса не имеет права импортировать модуль реализации. Наоборот, модуль реализации импортирует интерфейс и суёт туда свои разъёмы....

Автор:  Info21 [ Понедельник, 29 Октябрь, 2007 07:32 ]
Заголовок сообщения:  Re: Средства организации модулей

Предложение:

Подсистемы образуют просто еще один уровень блочности (процедуры--модули--подсистемы).

Раз это замечено 8), то че колесо изобретать -- нужен только механизм "локальных переменных" для этого уровня блочности, т.е. сущности, видимые всюду в подсистеме, но невидимые вовне. Концептуальная простота и единообразие опять же.

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

А в остальном можно думать об оформлении.
Конечно, хотелось бы (если возможно) не трогать сам язык.

Автор:  Сергей Губанов [ Понедельник, 29 Октябрь, 2007 12:23 ]
Заголовок сообщения:  Re: Средства организации модулей

info21 писал(а):
Подсистемы образуют просто еще один уровень блочности


Снабдить модуль специальным атрибутом (например, INTERNAL) и сказать, что модуль помеченный этим атрибутом могут импортировать только модули из его подсистемы.

INTERNAL MODULE XxxYyyy;

(*...*)

END XxxYyy.

Автор:  batyrmastyr [ Понедельник, 29 Октябрь, 2007 12:56 ]
Заголовок сообщения:  Re: Средства организации модулей

Сергей Губанов писал(а):
Снабдить модуль специальным атрибутом (например, INTERNAL) и сказать, что модуль помеченный этим атрибутом могут импортировать только модули из его подсистемы.

INTERNAL MODULE XxxYyyy;

(*...*)

END XxxYyy.

И наблюдаем то самое изменение языка которого очень не хотим. Причем это уже 3й вариант решения задачи в этой ветке (есть более ранняя) + вариант Руслана Богатырева + вариант языка Eiffel , очевидно, у каждого есть +/- и надо найти несколько неулучшаемых (т.е которым нельзя добавить + не добавив при этом - ) и потом уже серьезно думать какой лучше.

Автор:  batyrmastyr [ Понедельник, 29 Октябрь, 2007 13:02 ]
Заголовок сообщения:  Re: Организация межмодульных взаимодействий (гипотезы)

Илья Ермаков писал(а):
batyrmastyr писал(а):
Простейший пример - группа модулей наподобие Files-HostFiles чтобы HostFiles был доступен для импорта только модулю Files

Кстати, Files не импортирует HostFiles. Модуль интерфейса не имеет права импортировать модуль реализации. Наоборот, модуль реализации импортирует интерфейс и суёт туда свои разъёмы....

Моя ошибка, но по второму примеру вроде бы все поняли что я хотел сказать - явные группы модулей и возможность раскрытия доп. возможностей только ограниченному множеству подсистем и отдельных модулей

Автор:  Сергей Губанов [ Понедельник, 29 Октябрь, 2007 13:36 ]
Заголовок сообщения:  Re: Средства организации модулей

batyrmastyr писал(а):
И наблюдаем то самое изменение языка которого очень не хотим.


Разьве можно на уровне языка ввести некое средство, но не изменить сам язык?

На внеязыковом уровне INTERNAL модули давно есть - для таких модулей производитель не выдаёт символьных файлов, выдаёт только исполняемые.

Автор:  Info21 [ Понедельник, 29 Октябрь, 2007 13:54 ]
Заголовок сообщения:  Re: Средства организации модулей

Сергей Губанов писал(а):
На внеязыковом уровне INTERNAL модули давно есть - для таких модулей производитель не выдаёт символьных файлов, выдаёт только исполняемые.


Ну, тогда, может, и нефиг дергаться...

Есть ли реальная проблема-то?

Когда будет, тогда и решение (само) появится.

Автор:  Евгений Темиргалеев [ Понедельник, 29 Октябрь, 2007 14:55 ]
Заголовок сообщения:  Re: Средства организации модулей

info21 писал(а):
Сергей Губанов писал(а):
На внеязыковом уровне INTERNAL модули давно есть - для таких модулей производитель не выдаёт символьных файлов, выдаёт только исполняемые.


Ну, тогда, может, и нефиг дергаться...

Есть ли реальная проблема-то?

Когда будет, тогда и решение (само) появится.
Производитель распространяет подсистему(ы) с исходными текстами и пишет в документации - модуль имеет приватный интерфейс.

Мне решение с INTERNAL нравится.

Автор:  Axcel [ Понедельник, 29 Октябрь, 2007 16:08 ]
Заголовок сообщения:  Re: Средства организации модулей

Мне кажется эту проблему лучше решать на уровне IDE. Ну, например, делаем некоторое средство, которое формирует список экспортируемых сущностей, так, чтобы методом перетаскивания можно было вставить в программу (с автоматическим изменением списка импорта в модуле). Соответственно запрещенные к экспорту модули - недоступны.
Добавляем пункт меню - "Согласовать экспорт/импорт", для поиска модулей у которых список импорта не согласован с "главным" списком. А после наработки практики применения можно будет говорить о "законодательных" мерах.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/