ГОСТ Р 55346—2012
4.3.135 Прикладной компонент io_composition_port
Прикладной компонент io_composition_port принадлежит к тому жо типу, что и прикладной компо
нент io_port и TBD-разделение.
Примечание 1 — Семантика прикладного компонента functionalJink состоит в передаче прикладного ком
понента datajnstance от порождающего прикладного компонента to_port к приемному прикладному компоненту io_port.
Прикладной компонент data instanceдолжен быть одинаковымдля обоих портов. По этимсоображениям вводится тре
бование активации средствадля разделения прикладного компонента ю_рог1таким образом, чтобы прикладные компо
нентыfunctionalJinkмоггатсчитыватьилизаписыватьподмножестваданных прикладногокомпонентаio_port_Прикладной
компонент io_composition_port является средством получения прикладного компонента datajnstance типа compostle_
data type для прикладного компонента k>_port и создания промежуточного порта, данными для которогоявляется под
множестводля объединенного портаилибо источника, либоадресатадля прикладного компонентаfunctionaljink.
Примечание 2 — Благодаряфункцииабстрактногопредставленияданных, включеннойвARM-модель, объ
единение гложетвыполнятьсяединовременнотолькона одномуровне.Для определениятого,что прикладной компонент
functionaljink будетпорождать или приниматьприкладной компонентdala instance (которыйявляетсячастью структуры
типовданных на уровнеп), необходимо, чтобы прикладной компонент io_composition_port точноопределял это.
Примечание 3 — Прикладной компонент io_composition_port соответствует точечному обозначению,
используемому в большинстве обязательных языков программирования.
Пример
—
a:=a_data_type.a_data_field.
EXPRESS-описание:
*)
ENTITY io_composition_port
SUBTYPE OF (io_port)7
is_alias_for: dataJnstance:
port_of: data_composition_select;
DERIVE
SELF\io_port.role : port_data_relation := port_of.role;
UNIQUE
UR1: port_of. io_port_number;
END_ENTITY;
(*
Определения атрибутов:
Атрибут is_alias_for: Этот атрибут определяет прикладной компонент datajnstance. атрибут port_
of которого присваивается прикладному компоненту io_composition_port. Прикладной компонент data_
instance должен быть на один уровень ниже в иерархии типов абстрактных данных, чем прикладной
компонент io_port. который определяется с помощью атрибута port_of.
Примечание 4 — Этот случай соответствует точечному обозначению вязыках программирования. Рас
смотрим следующий тип составных данных:
type ajype = record
a_fieid : anotherjype;
another field : anotherjype;
end type;
Примечание 5 — Атрибут is_alias_for определяет область для типа составных данных, которые при
сваиваются величине данных (прикладному компоненту datajnstance) с помощью атрибута is_alias_for.
Примечание 6 — Атрибут data заимствуется из прикладного компонента io_port.
Атрибут port_of: Этот атрибут определяет прикладной компонент io_port, частью которого являет
ся прикладной компонент io_composition_port.
Атрибут role;
Формальные выражения:
UR1;
4.3.136 Прикладной компонент io_port
Прикладной компонент io_port является частью интерфейса функционального объекта.
Примечание 1 — Прикладной компонент io_port является абстрактным объектом и не должен реали
зовываться (создавать экземпляры).
84