ГОСТ Р ИСО/МЭК 8825-3—2016
Например, механизмом, применяемым для обработки факультативных возможностей, часто является
непосредственный (обязательный) предшествующий «бит-наличия» для каждого факультативного ком
понента. Параметризованная структура может быть определена включением конкатенации #BOOLEAN
{используемой в качестве определителя наличия), за которой следует факультативный компонент,
определенный в качестве фиктивного параметра (который должен выдаваться с компонентом, заменя
ющим структуру), на наличие которого указывает этот «BOOLEAN. Исходная процедура кодирования
«OPTIONAL определяется теперь как замена исходного компонента с его обязательной структурой пу
тем использования исходного факультативного компонента в качестве реального параметра (в D.3.2
приводится более полный пример этого процесса).
9.11.4 Фиктивными параметрами могут быть объекты кодирования, наборы объектов кодирова
ния. классы кодирования, ссылки на поля структур кодирования и значения любых типов АСН.1. ис
пользуемых в предопределенных классах кодирования, определяемых в разделе 23 и описанных в
ИСО/МЭК 8824-4, с учетом изменений из В.10 (приложение В).
9.11.5 Изменение синтаксиса параметризации, указанное в приложении С, требует использования
символа «{<» (без пробелов) вместо «{» для начала списка фиктивных или реальных параметров и
«>}» для его окончания.
Примечание — Это сделанодля облегчения анализа ECN в компьютере и для избежания двусмыслен
ности, когда определенные пользователем классы используются в определениях структур вместо «SEQUENCE.
«CHOICE. «REPETITION. «SEQUENCE-OF или «SET-OF.
9.12 Руководители
9.12.1 Понятия «руководитель или руководящее указанно» и «руководимая нотация» будут близки
к нотации значения АСН.1. в которой всегда имеется определение типа, которое «руководит» нотацией
значения и определяет ее синтаксис и смысл.
9.12.2 Это же понятие распространяется на определение объектов кодирования заданного класса
кодирования. Синтаксис для определения объекта кодирования класса «BOOLEAN (к примеру) сильно
отличается от синтаксиса для определения объекта кодирования класса «INTEGER (к примеру). Во
всех случаях, где требуется определение объекта кодирования, имеется некоторая связанная нотация,
которая определяет класс этого объекта кодирования и «руководит» синтаксисом, который следует ис
пользовать в его спецификации.
9.12.3 Синтаксис ECN нуждается в руководителях, которые являются классами кодирования и
будут справочными именами классов или именами параметризованных классов.
9.12.4 Если руководимая нотация является справочным именем объекта кодирования, то этот
объект кодирования должен быть того же класса, что и руководитель (см. 17.1.7).
9.13 Общие аспекты кодирования
9.13.1 ECN обеспечивает поддержку ряда методов, обычно используемых в определениях правил
кодирования (не просто тех методов, которые использованы в BER и PER). Например, ECN признает, что
факультативные возможности могут разрешаться любым из трех путей: использованием опреде
лителя наличия, использованием идентификационного описателя (см. 9.13.3) или достижением конца
некоторого контейнера с ограниченной длиной (или конца PDU) перед появлением факультативного
компонента.
9.13.2 Аналогично она признает, что разделение повторений может выполняться, например, с по
мощью:
- какой-либо формы подсчета длины:
- обнаружения конца некоторого контейнера (или PDU). в котором оно является последним эле
ментом;
- использования описателя идентификации в каждом повторении и в каждой последующей кодо
вой последовательности (см. 9.13.3);
- некоторой оканчивающей комбинации, которая никогда не может появиться в кодировании по
вторяющихся серий (простым примером является цепочка знаков, оканчивающаяся нулем).
- использования с каждым элементом «бита ЕЩЕ», который устанавливается в ЕДИНИЦУ для
указания, что последует другое повторение, и устанавливается в НУЛЬ для указания конца повторений.
ECN поддерживает все эти механизмы для разделения повторений и аналогичные механизмы
для идентификации альтернатив и для разрешения функциональных возможностей.
16