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

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

     9.13 Общие аспекты кодирования

9.13.1 ECN обеспечивает поддержку ряда методов, обычно используемых в определениях правил кодирования (не просто тех методов, которые использованы в BER и PER). Например, ECN признает, что факультативные возможности могут разрешаться любым из трех путей: использованием определителя наличия, использованием идентификационного описателя (см. 9.13.3) или достижением конца некоторого контейнера с ограниченной длиной (или конца PDU) перед появлением факультативного компонента.

9.13.2 Аналогично она признает, что разделение повторений может выполняться, например, с помощью:

- какой-либо формы подсчета длины;

- обнаружения конца некоторого контейнера (или PDU), в котором оно является последним элементом;

- использования описателя идентификации в каждом повторении и в каждой последующей кодовой последовательности (см. 9.13.3);

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

- использования с каждым элементом "бита ЕЩЕ", который устанавливается в ЕДИНИЦУ для указания, что последует другое повторение, и устанавливается в НУЛЬ для указания конца повторений.

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

9.13.3 Кроме использования в окончаниях повторений, метод идентификационного описателя может использоваться также для определения наличия факультативных компонентов или альтернатив и упорядочения наборов. Механизм одинаков во всех этих случаях. Учитывая класс кодирования, который является "возможным следующим классом", и объект кодирования, примененный к нему, любое произведенное кодирование будет содержать на некоторых битовых позициях (в описателе идентификации) битовую комбинацию, соответствующую битовой комбинации в пределах заданного набора битовых комбинаций (набора значений описателя), характеризующую этот класс, но не соответствующую ни одной битовой комбинации, характеризующей любой другой "возможный следующий класс". Все такие способы кодирования могут распознаваться декодером как кодирование "возможного следующего класса", а битовая комбинация, найденная при кодировании, будет определять, какое именно кодирование "возможного следующего класса" присутствует. Это понятие аналогично использованию тегов для таких целей в BER. Описатели идентификации имеют имена, которые должны быть уникальными в пределах спецификации ECN.

9.13.4 Здесь важно отметить, что ECN позволяет определять способы кодирования очень гибким способом, но не может гарантировать, что спецификация кодирования правильна, то есть что декодер сможет успешно восстановить исходные абстрактные значения из кодирования. Например, определитель ECN может назначить одну и ту же битовую комбинацию для булевых значений ИСТИНА и ЛОЖЬ. Это будет ошибкой, и в этом случае некоторый инструмент достаточно легко обнаружит ошибку. Другой ошибкой может быть утверждение, что кодирование имеет саморазграничение (и не требует определителя длины), когда фактически это не так. Эта ошибка также может быть обнаружена некоторым инструментом. В более тонких и сложных случаях, однако, инструмент может не справиться с диагностикой ошибочной спецификации (с ошибкой, которая не всегда успешно обнаруживается).