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

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

     19.5 Отображение с помощью упорядочения абстрактных значений

19.5.1 Это отображение позволяет распределять абстрактные значения, связанные с простыми классами кодирования, в поля сложных структур кодирования и отображать абстрактные значения, связанные со сложными структурами кодирования, в простые классы кодирования, такие как #INT. Оно допускает также уплотнение целочисленных значений или перечислений в непрерывный набор целочисленных значений (см. D.1.4).


Примечание - Номера тегов, связанные с классами в категории "тег", не являются абстрактными значениями.

19.5.2 Продукцией "MappingByAbstractValueOrdering" является:

MappingByAbstractValueOrdering ::=

ORDERED VALUES

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

19.5.4 Упорядоченный набор значений может быть конечным или бесконечным.

19.5.4.1 Конечный набор упорядоченных абстрактных значений определяется для классов кодирования в следующих категориях:

a) "вырожденная";

b) "булева";

c) ограниченная "целочисленная";

d) "действительное число", ограниченное до конечного числа значений;

e) "структура кодирования", определенная с использованием категории "альтернативы", при условии, что все альтернативы имеют определенное конечное упорядочение;

f) "структура кодирования", определенная с использованием категории "конкатенация", которая имеет одиночный нефакультативный компонент, при условии, что этот компонент имеет определенное конечное упорядочение.

19.5.4.2 Бесконечный набор упорядоченных абстрактных значений определяется для классов кодирования в следующих категориях:

a) "целочисленная", ограниченная наличием конечной нижней границы;

b) "структура кодирования", определенная с использованием категории "альтернативы", при условии, что все альтернативы, за исключением последней, определяются как имеющие конечный набор упорядоченных значений, а последняя альтернатива определяется как имеющая бесконечный набор упорядоченных значений;

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

19.5.5 Классы в категории "нуль" имеют одиночное абстрактное значение. Классы в категории "булева" определяются как имеющие TRUE перед FALSE. Классы в "целочисленной" категории определяются как имеющие более высокие значения целого числа, следующие за низкими значениями целого числа. Классы в категории "действительное число" определяются как имеющие более высокие значения, следующие за низкими значениями.


Примечание - Число абстрактных значений, связанных с классом в "целочисленной" категории, не обязательно конечно.

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

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

19.5.8 Упорядочение абстрактных значений, связанных с классом в категории "конкатенация", который имеет одиночный нефакультативный компонент, должно быть порядком, определенным упорядочением абстрактных значений его единственного компонента.

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

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

19.5.11 Если число абстрактных значений в упорядочении пункта назначения меньше, чем число абстрактных значений в упорядочении источника, то это не будет ошибкой. Однако спецификация ECN будет неспособна кодировать некоторые абстрактные значения из спецификации АСН.1; это должно быть указано комментарием в спецификации АСН.1 или в спецификации ECN.