Ада-95. Компилятор GNAT



         

Подсистемы


Большие системы обычно состоят из сотен и даже тысяч самостоятельных компонентов.

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

Таким образом, отдельные компоненты собираются в группы или кластеры модулей, которые интенсивно взаимодействуют между собой.

При этом, взаимодействие отдельного компонента с остальной системой не так активно или вообще отсутствует.

Подобные группы компонентов называют подсистемами (subsystem), и они могут собираться, управляться и обслуживаться изолировано от остальной системы.

Для поддержки построения и облегчения сопровождаемости больших систем, Ada95 предоставляет концепцию дочерних библиотечных модулей.

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

Это позволяет строить иерархии библиотечных модулей.

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

Подсистема (subsystem) - это иерархия библиотечных модулей.

Она может состоять из подпрограмм, но чаще всего она состоит из иерархии пакетов.

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

Подсистемой можно манипулировать как тесно интегрированной сборкой отдельных компонентов, так и как единым целым.

Спецификация всей подсистемы - это иерархия спецификаций ее публичных модулей.

Дочерний модуль может быть приватным модулем.

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

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




Содержание  Назад  Вперед