Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

     9.7 Определение объектов кодирования


Имеются восемь механизмов, доступных для определения объектов кодирования заданного класса кодирования. Они не все доступны для всех классов кодирования.

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

9.7.2 Вторым механизмом, доступным для ограниченного набора классов кодирования, является использование определенного синтаксиса (см. 17.2) для указания информации, необходимой для определения объекта кодирования этого класса. Многое из необходимой информации является общим для всех классов кодирования, а некоторая информация всегда зависит от конкретного класса кодирования (см. в D.1.1.2 пример определения объекта кодирования класса #BOOLEAN, который содержит кодирования для булева типа АСН.1).

9.7.3 Третий механизм, доступный для всех классов кодирования - это определение объекта кодирования в виде кодовой последовательности необходимого класса, которая содержится в некотором существующем наборе объектов кодирования. Это используется главным образом при именовании объекта кодирования для отдельного класса, который будет выполнять кодирования BER или PER для этого класса.

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

9.7.4 Четвертый механизм - это отображение абстрактных значений, связанных с некоторым классом кодирования (например, ""), в абстрактные значения, связанные с другим (обычно более сложным) классом кодирования (например, ""), и определение объекта кодирования для "" (используя любой доступный механизм). Объект кодирования для абстрактных значений, связанных с "", может быть теперь определен как приложение объекта кодирования для "" к соответствующим абстрактным значениям, связанным с "" (см. пример D.2.8.3). Вариантов такого отображения много (см. 9.17).


Примечание - Это является моделью, лежащей в основе определения объекта для кодирования целочисленного типа в BER. Целое число отображается в структуру кодирования, которая содержит поле какого-либо класса "тег" (UNIVERSAL, APPLICATION, PRIVATE или зависящий от контекста), примитива/конструктора булево значение, поле номера тега и часть значения, которая кодирует абстрактные значения исходного целого числа.

9.7.5 Пятый механизм - это определение объекта кодирования для некоторого класса (например, соответствующего определенному пользователем типу АСН.1) путем отдельного определения объектов кодирования для компонентов и конструктора кодирования, используемых в определении этого класса кодирования.

9.7.6 Шестой механизм - это определение объекта кодирования для дифференциального кодирования-декодирования (см. 9.8) с использованием двух отдельных объектов кодирования, один из которых определяет поведение кодера, а другой указывает декодеру, как должно учитываться кодирование.

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

9.7.7 Седьмой механизм - это определение такого объекта кодирования с факультативными способами кодирования, который содержит упорядоченный список объектов кодирования одного и того же класса. Кодер может выбирать для применения объект кодирования из списка с учетом следующего ограничения: если только один факультативный способ кодирования может кодировать заданное абстрактное значение, то он будет применяться, при этом рекомендуется, чтобы использовался первый доступный способ кодирования из списка.

Примечание - Объект кодирования с факультативными возможностями может, например, использоваться в спецификации кодовых последовательностей с короткой длиной, где они могут кодировать конкретную длину цепочки, используя кодовые последовательности с большой длиной, где короткая длина не может использоваться. Сейчас нет механизма для спецификатора ECN, запрашивающего использование первого доступного объекта кодирования (если более чем один объект могут кодировать абстрактное значение), кроме применения комментария.

9.7.8 Наконец, объект кодирования может быть определен с помощью не-ECN нотации. Это является средством, позволяющим использовать любую желательную нотацию (включая единственный язык) для определения объекта кодирования (см. D.2.7.3).

Примечание - He-ECN нотация должна использоваться с осторожностью, так как в этом случае обычно невозможна инструментальная поддержка реализации.