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

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

     11.3 Упрощение и расширение нотации АСН.1 для целей кодирования

11.3.1 В ECN предполагается, что определенные синтаксические конструкции АСН.1 будут расширены (или сокращены) в эквивалентные или упрощенные конструкции.

Примечание - Типы, определенные упрощенными конструкциями, способны переносить такой же набор абстрактных значений, что и исходные синтаксические структуры АСН.1, и эти абстрактные значения отображаются в упрощенные конструкции.

11.3.2 Расширениями или упрощениями синтаксических конструкций АСН.1 являются следующие:

a) полностью определенные в разделе 11.3.4, или

b) упомянутые в разделах "См. перечисление b) 11.3.2" и полностью определенные в ИСО/МЭК 8824-1 (включая приложение С) со всеми опубликованными поправками и техническими опечатками, или

c) упомянутые в разделах "См. перечисление с) 11.3.2" и полностью определенные в ИСО/МЭК 8824-2 со всеми опубликованными поправками и техническими опечатками, или

d) упомянутые в разделах "См. перечисление d) 11.3.2" и полностью определенные в ИСО/МЭК 8824-4 со всеми опубликованными поправками и техническими опечатками.

11.3.3 Синтаксические конструкции АСН.1, удаленные ниже при расширении и упрощении, далее в настоящем стандарте не упоминаются.

11.3.4 Следующие расширения и упрощения будут применимы ко всем модулям АСН.1.

11.3.4.1 Следующие трансформации не являются рекурсивными и, следовательно, применяются только один раз:

a) все "ValueSetTypeAssignment" заменяются их эквивалентами "TypeAssignment" с ограничениями на подтипы [см. перечисление b) 11.3.2];

b) конструкция АСН.1 INSTANCE OF расширяется в ее эквивалентный тип "последовательность" [см. перечисление с) 11.3.2];

c) "TypeFromObject" заменяется типом, на который дана ссылка [см. перечисление с) 11.3.2];

d) "ValueSetFromObjects" заменяется типом, на который дана ссылка [см. перечисление с) 11.3.2];

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

Примечание - Это похоже на правила неявного тегирования в АСН.1, но применяется для любой среды тегирования. Многократное тегирование одного и того же типа, тем не менее, возможно путем использования справочных имен типа.

11.3.4.2 Следующие трансформации применяются рекурсивно в указанном порядке до достижения некоторой фиксированной точки:

a) вся параметризация АСН.1 полностью разрешается путем замены реальных параметров на холостые параметры [см. перечисление d) 11.3.2].

Примечание - Это означает, что если нотация типа АСН.1 содержит экземпляр параметризованного типа АСН.1, то этот экземпляр становится инлайновым определением;

b) все "ComponentsOf" расширяются до их полных форм [см. перечисление b) 11.3.2];

c) все использования "SelectionType" должны быть разрешены [см. перечисление b) 11.3.2].

11.3.4.3 Затем применяются следующие трансформации:

a) списки поименованных номеров в определениях целочисленных типов удаляются. Поименованные номера для ECN не видны. ECN видит один класс #INTEGER [возможно, с границами, определенными в перечислении с) 11.3.4.3];

b) списки поименованных битов в определениях цепочек битов удаляются. Поименованные биты для ECN не видны;

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

i) верхняя граница целых чисел и перечислений;