Товары в корзине: 0 шт Оформить заказ
Стр. 1
 

101 страница

669.00 ₽

Купить официальный бумажный документ с голограммой и синими печатями. подробнее

Официально распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль".

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

Описывает нотацию для определения абстрактного синтаксиса, называемую абстрактно-синтаксической нотацией версии один (АСН.1).

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

Настоящий стандарт определяет методы построения новых типов из более простых типов и обозначения, которые следует использовать при определении такого рода структурированных типов и присвоении им тегов, а также при задании значений этих типов

Показать даты введения Admin

Страница 1

ГОСТ Р ИСО/МЭК 8824-93

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССНЯСКОЯ ФЕДЕРАЦИИ

ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ

ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ СПЕЦИФИКАЦИЯ АБСТРАКТНО-СИНТАКСИЧЕСКОЙ НОТАЦИИ ВЕРСИИ ОДИН (ACH.I)

БЗ 12—«2/117®    ? G О О    -

Т)

ГОССТАНДАРТ РОССИИ Москва

г


Страница 2

ГОСТ Р ИСО/МЭК 8824-93

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ

ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ СПЕЦИФИКАЦИЯ АБСТРАКТНО-СИНТАКСИЧЕСКОЙ НОТАЦИИ ВЕРСИИ ОДИН (ACH.I)

МОСКВА 1994

Страница 3

ГОСГ f> ИСО МЭК HR24-93

Предисловие

1    ПОДГОТОВЛЕН И ВНЕСЕН Техническим комитетом по стандартизации л Информационная технология» (ТК 22)

2 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 20.12.93 .*6 263

Настоящий стандарт подготовлен на основе применения аутентичного текста международного стандарта ИСО/МЭК 8824—90 «Информационная технология. Взаимосвязь открытых систем. Спецификация абстрактно-синтаксической нотации версии один (АСН-1)»

3    ВВЕДЕН ВПЕРВЫЕ

(g> Издательство стандартов. 1994

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Госстандарта России

II

Страница 4

ГОСТ Р ИСО.МЭК 8824-93

СОДЕРЖАНИЕ

Введение...........    .    .1

1    Обдвсг» применения    ........5

2    Нормативные ссылки...........6

Я Определении    .    .    <>

4 Сокращения    ..............    II

о Система обозначений, используемая в настоящем    стандарте- .    11

5.1    Продукции.............11

5.2    Совокупности-варианты .    12

5.3    Пример продукции    .    .......12

5.4    Расположение теиста ...    .    ...    13

5.5    Рекурсия .    .    .    ....    13

5.6    Ссылки на совокупность последовательностей    .    ...    13

5.7    Ссылки на »лемет    ...    13

5.8 Теги    ...........    ....    13

6    Использование нотации ACH.I ....    .    .    14

7    Набор знаков нотации ACII.J    .    ....    15

£ Элементы АСИ.1............16

8.1    Общие правила .    ......16

8.2 Ссылки на тип ...    ...    ...    16

8.3 Идентификаторы    ...    16

8 4 Ссылка на значение    ..........17

8.5    Ссылка на модуль...........    17

8.6    Комментарий    .    ,    ...    18

Я 7 Пустой элемент    ....    .    .    .18

8.8    Элемент «число» ...    .    ...    18

8 9 Элемент «двоичная строка»    .    '    .    .    18

8.10    Элемент «шестнадцатеричная строка* ......    18

8.11    Элемент «.строка знаков*    ...    .    19

812 Элемент «присвоение»    .    .......19

8.13 Элементы, состоящие нз одного знака..........19

814 Элементы ■- ключевые слом ..    ....    19

0 Определение модуля    ..........21

30 Ссылки ка определении тиков и значений ......24

11    Присвоение типов н значений .........55

12 Определение типов к значений...........    .25

13    Обозначения для булевского типа    ......28

14    Обозначения для целочисленного типа ........£9

15    Обозначения для m-речцелительного тина' .    .    .    30

16    Обозначения для типа «действительное число*......да

17    < 1бОзначеж»я для типа «строка    битов» .    .    31

18    Обозначения для типа «строка октетов» ...    ...    34

19    Обозначения для вырожденного типа    ....., .    34

20    Обозначения для типов «последовательность»......34

21 Обозначения для типов «последовательность из*    .    .    3i3

22    Обозначения для типов «множество» .    .    .    ■    37

23    Обозначения для    тнпов «множество из»    .    .    ....    38

24 Обозначения лля выборочных типов    ...    зэ

25    Обозначения для селективных типов    .....4-j

26    Обозначения лля тегированных тнпов ............41

27    Обозначения для    произвольного типа    .    .    ....    4:$

28    Обозначения для типа «идентификатор объехта»    ....    44

29    Обозначения дли    типов «строка знаков*    ,    .    ...    43

30    Обозначения для тнпов. определенных в разделах .42—35    47

31 Определение ткпо* «строка знаков»    ....    .    -47

42 Общая форма записи времени .    .......*9

Л1

2 Зьк. 223

Страница 5

ГОСТ Р ИСО.МЭК 8824-вЗ

33 Всемирное время .    .    .    .....

М Внешний тип    ....

35    Тип «описатель объекта*    ....

36    Обозначь ни я лии подт ипов

37    Подмножества значений полита .    .    .

37.1    Одно значение .    ...

37.2    ВложекпыГг под'ии

37.3    Диапазон значений    .......

.47.4 Ограниченна размера    .    .    v

37.5    Разрешенный алфавит .

37.6    Образоаанне внутренних подтипов    .....

Приложение А МАКРОНОТАЦИЯ    ...

Л.1 Введение...................

А 2 Дополнении к набору знаков и множеству элементом ACH I Л.2.1 Мзкроссылха .    ■    .    .

А.22 Ссылка из продукцию    ...    ....

А.2.3 Локальная ссылка на тип........

А 2.4 Локальная ссылка на значение .    .....

А 2.5 Элемент разграничения вариантов......

А.2.6 Элемент, обозначающий коней определения    .    .    .    .

А.2 7 Синтаксический терминальный элемент .    . ' .

А 2.8 Элементы -- ключевые слова синтаксических категорий А.29 Дополнительные элементы - ключевые слова АЛ Обозначения для записи макроопределений

А 4 Использование новой нотации........

Приложение В ОПРЕДЕЛЯЕМЫЕ ИСО ЗНАЧЕНИЯ КОМПОНЕНТО OBJECT IDENTIFIER    .    .

Приложение С ОПРЕДЕЛЯЕМЫЕ МККТТ ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER    .......

Приложение D СОВМЕСТНО ОПРЕДЕЛЯЕМЫЕ ЗНАЧЕНИЯ КОМПО

HbHloB OBJECT IDENTIFIER.....

Приложение Е ПРИМЕРЫ И РЕКОМЕНДАЦИИ

Е.) Пример записи учета кадров........

E.I.I Неформальное описание записи учета кадров К.1.2 Описание структуры шткси с помощью ACH.I

6.1.3 Описание значения записи с помощью ACH.I Е 2 Рекомендации по использованию нотации

Е 21 Булс&ский тир    ....

Е.2.2 Целочисленный тип    .    .    .    ,    .    ...

Е.2-3 Перечислительный ТИП    ......

Е.2.4 Тип «действительное    число»    ....

Е.2 5 Тип «строка Ь\л*т» .    .

Е.2 6 Тип «строка октетов»    .    ....

Е 2 7 Вырожденный тип    ......

Е.2 8 Гилы «последовательность» и «последовательность из»

Е.2<) Тип «множество» ...    .    .....

Е.2 10 Тегированный tun    .......

E.2.II Выборочный -тип .    .    .    .    .

Е.2 12 Селективный тин    .    :    .    ...

Е.2.13 Произвольный тип    .    ....

Е.2.14 Внешний тип...........

Е.З Пример использования макроиотапии    ....

h.4 Использование нотаций для определения абстрактны* синтаксисов

К 5 Подтипы ...    .......

Приложите СВОДК А СИНТАКСИСА НОТАЦИИ ACH.I

Страница 6

ВВЕДЕНИЕ

На нижних уровнях базовой эталонной модели (см. ГОСТ :>й906) каждый параметр данных пользователя, задаваемый в сервисном примитиве, определяется как двоичное значение некоторой последовательности октетов.

На уровне представления характер параметров данных пользователя становится иным. Спецификации по прикладному уровню требуют, чтобы данные пользователя услуг представления (см. ГОСТ 34.971) могли принимать значения весьма сложных типов, возможно, включающих строки знаков из различных знаковых наборов. Эти слецнфиксиин требуют наличия определенной нотации, которая определяла бы передаваемое значение, не задавая конкретного способа его представления. Способ представления определяется заданием одного или нескольких алгоритмов, называемых правилами кодирования. Правила кодирования определяют конкретный вид октетов на сеансовой уровне, с помощью которых передаются значения данных прикладного уровня (синтаксис передачи). Протокол уровня представления (см. ГОСТ 34 972) позволяет взаимодействующим объектам договариваться о том, какие синтаксисы передачи будут ими использоваться.

Цель задания значения состоит в том. чтобы можно было отличать его от всех возможных других значений. Объединение некоторого значения с другими значениями, отличными от данного, называется типом, н каждый конкретный элемент этой совокупности является значением этого тина. С более общих позиций значение или гнп часто могут рассматриваться как образования, состоящие нз более простых значений или типов, между которыми установлены взаимосвязи. В качестве синонима термина «тип» часто используют термин «тип данных»

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

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

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

I

Страница 7

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

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

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

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

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

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

Типы, определенные с помощью описанных выше методов, называются структурированными типами.

Каждому типу, определенному посредством нотации, описываемой настоящим стандартом, назначается <тег». Тег либо определен в самом стандарте, либо определяется пользователем описываемой здесь нотации.

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

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

Настоящей нотацией определяется четыре класса тегов.

Первый класс называется универсальным. Использование тегов универсального класса определяется спецификациями настоящего стандарта, причем каждый тег либо:

a)    присвоен какому-то одному типу, либо

b)    присвоен некоторому способу построения типов.

Страница 8

Второй класс тегов называется прикладным. Теги прикладного' класса присваиваются типам данных в других стандартах. В рамках одного стандарта тег прикладного класса присваивается только какому-то одному типу.

Третий класс тегов называется пользовательским. Теги ноль* .човательского класса не присваиваются в стандартах ИСО. Порядок их использования может быть различным в различных организациях.

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

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

Примечания

1    Все типы, которые могут йьпь определены с использованием нотация, описываемой настоящим стандартом, инемп- тсгв. Пользователь настоящей нотации может определить новый 7ип. присваивая новый тег ранее определенному типу.

2    Пряпи.ча кодирования гаратируют явное иди неявное задание тега типа вместе со значением да!шого типа при .тк>бом определении этого значения. Ограничении. налагаемые на использование настоящей нотации, обеспечивают достаточность тега лли идентификации типа, при условии доступности определений еоогветствующид типов.

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

Назначение настоящего стандарта состоит в описании нотации для определения абстрактного синтаксиса, называемой абстракт но-сннтгкснческой нотацией всрсии I, или ACH.I. Абстрактно-синтаксическая нотация версии 1 является полуформальным средством, используемым при определении протоколов. Использование настоящей нотации само по себе не исключает неоднозначности соответствующих спецификаций. Обеспечение однозначности спецификаций должно осуществляться пользователем нотации.

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

3

Страница 9

полностью определяет представление этих значений при передаче (т. е. синтаксис передачи).

С технической к редакционной точек зрения настоящий стаи дчрт согласуется с рекомендацией X 208 (1988) МККТТ.

Часть I настоящего стандарта содержит определения простых типов, используемых » ACH.I, н определяет обозначения, которые следует использовать для ссылок на простые типы и для описания структурированных типов. В части 1 также описываются обозначения. которые следует использовать при задании значений типов, определенных с помощью ACH.I.

В части 2 настоящего стандарта определяются дополнительные типы (типы «„строка знаков»), которые применением правил кодирования могут бить приравнены к типу «строка октетов».

В части 3 настоящего стандарта определяются некоторые структурированные типы, которые являются общеупотребительными, и в то же время не требуют введения новых правил кодирования, отличных от правил кодирования ранее определенных типов.

В части 4 настоящего стандарта определяются обозначения, позволяющие определять подтипы из значений порождающего типа.

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

Приложение В является обязательной частью настоящего стандарта и содержит определение логического дерена идентификаторов объектов для источников идентификации, поддерживаемых ИСО

4

Страница 10

ГОСТ Р ИСО/МЭК 8824-93 ГОСУДАРСТВЕННЫЙ стандарт российской федерации

Информационная технологи*.

взаимосвязь открытых систем, спецификация

АБСТРАКТНО СИНТАКСИЧЕСКОЙ НОТАЦИИ ВЕРСИИ ОДИН (ACH.I)

Information technology. Open Systems Interconnection. Specification Abstract Synla* Notation One <ASN.l)

Дата пведеиия 1994-07—01

I ОБЛАСТЬ ПРИМЕНЕНИЯ

Настоящий стандарт описывает нотацию для определения абстрактного синтаксиса. называемую абстрактно-синтаксической нотацией версии один (АСН.1).

Настоящий стандарт определяет ряд простых типов вместе с присвоенными им тегами и обозначения, которые следует использовать для ссылок на эти типы, а также для задания значений эти* типов.

Настоящий стандарт определяет методы построения новых типов из более простых типов и обозначения, которые следует использовать при определении такого рода структурированных типов и присвоении нм тегов, а также при задании значений этих типов

Настоящий стандарт определяет знаковые наборы, используемые в ACH.I.

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

Нотация АСН.1 может применяться во всех случаях, где трг* буется определять абстрактный синтаксис информации. Одной из сфер ее применения (но не единственной) являются протохолы прикладного уровня.

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

Издание официальное

5

Страница 11

ГОСТ Р И со. М ЭК 8824-0;»

2 НОРМАТИВНЫЕ ССЫЛКИ

ГОСТ 28906-91 (ИСО 7498) Системы обработки информации. Взаимосвязь открытых систем. ‘ Базовая эталонная модель (см. также Рекомендацию МККТТ Х.200)

ГОСТ 34.971— 91 (ИСО 8822) Системы обработки информации. Взаимосвязь открытых систем. Спецификация услуг уровня представления для режима с установлением соединения

ГОСТ 34.1172—91 (ИСО 8823) Системы обработки информации. lb:i:i\socu»;;.> открытых систем. Спецификация [юотокола уровня представления для режима с установлением соединения

ГОСТ Р ИСО/МЭК 8825—93 Системы обработки информации. Взаимосвязь открытых систем Спецификация базовых правил кодирования для нотации абстрактного синтаксиса версии один (ДСН I)

ИСО 2375— 85 Обработка информации. Процедуры регистрации последовательностей расширения*

ИСО 3166—88 Коды для представления названий стран'

ИСО 6523 -84 Обмен информацией. Структура идентификаторов организаций*

Рекомендация МККТТ Х.208: 1988 Спецификация нотации абстрактного синтаксиса версии 1 (АСН 1)

3 ОПРЕДЕЛЕНИЯ

В на'стояшем стандарте используются определения, содержащиеся в ГОСТ 28906.

3.1    Значение — отличный от других элементов множества значений.

3.2    Тин — множество значений, которому присвоено имя.

3.3    Простой тип — тип, определяемый прямым заданием множества составляющих его значений

3.4. Структурированный тип — тип, при определении которого используются ссылки на другие типы.

3.5    Тип-компонент — один нз типов, используемых при определении структурированного типа.

3.6    Тег - обозначение типа, присваиваемое каждому типу в АСН.1.

3.7    Тегирование — изменение существующего (возможно, заданною по умолчанию) тега некоторого типа новым тегом.

1

До прямого примеиеяня данного дохументз » качестве государствен мою стандарт* распространение его осуществляет секретариат ТК 22 «Информационная тсхнологня>

Страница 12

ГОСТ Р ИОДМЭК 8824-93

3.8 Набор знаков ACH.I — набор знаков, определенным в разделе 7. который используют н обозначениях нотации ЛСН.1.

3-9 Элементы — поименованные последовательности знаков из набора знаков ЛСН.1, определенные в разделе 8, используемые для формирования обозначений нотации ACH.I.

3.10    Ссылка- на тип (или значение) — имя, однозначно идентифицирующее тип (или значение) в рамках некоторого контекста.

Примечание. Ссылочные имена ирисваимкл гиоам, определяемым а настоящем стандарте; »гм имена могут применяться при любом использовании ЛСН.1 Другие ссылочные имена wipe делим и других стандартах, они применимы ТОЛЬКО 8 ЬОНТСКСТС соответствующих стандартов.

3.11    Правила кодирования ACH.I — правила, определяющие конкретное представление (при передаче) значений любых типов, определенных н ЛСН.1; правила кодирования ЛСН.1 позволяют получателю распознать переданную информацию как конкретное значение конкретного типа, определенного в ACH.I.

3.12    Тип «строка знаков» - пт, значения которого являются строками знаков из некоторого набора знаков.

3.13    Булевский тип — простой гнп с двумя различными значениями.

3.14    Истинно — одно из двух различных значений булевского типа.

3.15    Ложно - другое значение булевского типа.

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

Примечание Конкретные правила кодирования ограничивают диапазон,

* котором Mdiyr находиться числа, однзко рамки этих ограничений выбраны достаточно широкими для к>. о, чтобы бы п. практически неощутимыми дли .но бою ич ппльтаввттасй ACI1I.

3.17    Перечислительный тип — простой гии, значениям которого назначаются отличные друг от друга идентификаторы, являющиеся частью обозначения для этого типа

3.18    Тип «действительное число» — простой тип, различными значениями которого (описанными в 16.2) являются элементы множества действительных чисел.

3.19    Тип «строка бит» - простой тип, различными значениями которого являются упорядоченные последовательности из пустого множества бит, одного или более бит

Примечание Правил» ьолиропаини не ограничнвядо число Оиг я строка

биг

3.20    Тип «строка октетов» — простой тип, различные значения • которого являются упорядоченными последовательностями из чус»

Страница 13

ГОСТ ? ИСО/МЭК 8824-93

того множества октетов, одного илн более октетов, где октет • это упорядоченная последовательность из восьми бит.

Примечание. Правила кодирования не ограничивают число октсчоп в строке октетов.

3.2! Вырожденный тип (тип NULL) — простой тип. состоящий из единственного значения, также называемого вырожденным значением («NULL»).

Примечание. Вырожденное значение обычно используют в тел случаях, когда возможно несколько различны* парна «гоп. но ми одни ю них не имеет места.

3.22    Тип «последовательность» — структурированный тип, определяемый ссылкой на фиксированный, упорядочений список типов (некоторые из которых могут быть объявлены необязательными); каждое значение нового типа является упорядоченной последовательностью значений типов-компонентов, по одному из каждого из нил.

Примечание. Если тип-компонсит объявлен необязательным, то значение нового типа может не включзть в себя значение этого типа-компонента.

3.23    Тип «последовательность из* — структурированный тип. определяемый ссылкой на один из существующих типов; каждое значение нового типа является упорядоченной последовательностью из пустого множества значений, одного или более значений существующего типа.

Примечание Правил;* кодирования иг № рамичнндот число значений — компонентов в значении «последоватслыюсгь из».

3.24    Тип «множество» — структурированный тип. определяемый ссылкой но фиксированный неупорядоченный список различных типов (некоторые из которых могут быть объявлены необязательными); каждое значение нового типа является неупорядочен-ным списком значений, по одному из каждого тнпа компонента.

Примечание. Если тип-компонент объявлен необязательным. то новый тип не обязательно содержи! значение этого типа-компомемтэ.

3.25    Тип «множество из» — структурированный тип. опреде ляемый ссылкой на единственный существующий тип; каждое значение нового типа является неупорядоченным списком из нуля, одного или более значений существующего типа.

Примечание. Правила кодирования не ограничивают число значений-компонентов в значении «множество из>

3.26    Тегированный тип — тип. определяемый указанием одного из существующих типов и тега; новый тип является изоморфным существующему типу, но отличен от него.

ч

Страница 14

ГОСТ Р ИСО/МЭК «124-83

3.27    Выборочный тип — структурированный тип, определяемый указанием фиксированного неупорядоченного списка различных типов, каждое значение нового типа является значением одного из типов-компонентов.

3.28    Селективный тип — структурированный тип, определяемый указанием одного из типов-компонентов выборочного типа.

3.29    Произвольный гип — выборочный тип, типы-компоненты которого не заданы, но ограничены множеством типов, которые могут быть определены с помощью ЛСН.1.

3.30    Внешний тип — тип, различные значения которого не могут быть установлены только лишь по той информации, что они являются значениями внешнего типа, однако значения зтого типа могут быть установлены по их кодовому представлению; эти значения могут быть (но это не обязательно) описаны с помощью ЛСН.1, и соответственно их кодовое представление может (но не обязательно) соответствовать правилам кодирования для ЛСН.1.

3.31    Информационный объект — некоторая точно определенная совокупность информации, определение или спецификация, использование которой в конкретном взаимодействии идентифицируется соответствующим именем.

332 Идентификатор объекта — значение (отличающееся от других подобных значений), которое связывается с информационным объектом.

3.33    Тип ^идентификатор объекта» — тип. различные значения которого составляют множество всех идентификаторов объектов. присвоенных в соответствии с правилами настоящего меж-дународного стандарта.

Примечание Правила нестоящего международного стандарта прсдостан-ляют возможность целому ряду организаций — источников идентификации н<мя-яисимо ,jpy! or лруга етпыпзть идентификаторы объектов с информационными объектами

3.34    Тип «описатель ебьекта» -- тип. различные значения которого имеют вид текста, ориентированного на восприятие человеком, дающего краткое описание информационного объекта.

Примечание. Обычно (но не всегда) описатель обычая связывается с каким-то одним информационным объектом. Информа1'чонныЛ ибъеи? полнот,ю идентифицируется только с помощью идентификатора обм-кта

3.35    Рекурсивные определения — множество таких определений. допускающихся в нотации ЛСН.1, которые не мргут бить переупорядочены таким образом, чтобы все типы, использующиеся в соответствующих конструкциях зтих определений, были определены до использования этих конструкций.

9

Страница 15

ГОСТ Р ИСО/МЭК 8824-93

Примечание. Рекурсивный определения разрешены в ДСИ.1; польэопа-гель этой нотации должен позаботиться о том, что используемые значения получаемых в результате типов имелн конечное представление.

3.36    Модуль — одно или несколько выражений нотации АСН.1 для определения типов и значений, оформленных как единое целое в соответствии с обозначениями определения модулей. (См. раздел 9).

3.37    Продукция — часть формальной системы обозначений, используемой при спецификации ACH I, в которой допустимым последовательностям элементов присваивается нмя, которое может быть использовано для последующих ссылок на эти последователь ности при определении новых допустимых последовательностей.

3.38    Всемирное согласованное время (UTC) — временной эталон, поддерживаемый Международным бюро времени и служащий основой для согласованного распространения частот и сигналов времени.

Примечания

1    Источником но!о определении явлветси рекомендация 460--2 Международной консультативной комиссии по радио (CCJR) Аироммм UTC для всемирного согласованного времени также был введен CC1R.

2    UTC также называют средним гринвичским временем; соответствующие временные сигналы регулярно транслируются

3.39    Пользователь (нотации АСН.1) — частное лицо или организация, определяющие абстрактный синтаксис нехоторой информации, используя АСН.1.

3.40    Подтип (порождающего тина) — тип. значения которого задаются как подмножество значений другого (порождающего) типа.

3.41    Порождающий тип (для подтипа) — тип, используемый при определении подтипа.

П р н и о ч .■] н и <• Порождающий тип ywko бич- иодголоч некоторого другого типа.

3.42    Спецификация подтипа -- обозначение, которое можег быть использовано в совокупности с обозначением некоторого типа для определения подтипа этого типа.

3.43    Подмножество значений подтипа — обозначение, образующее часть спецификации подтипа, задающее некоторое множество значений, которое должно быть включено в подтип

В настоящем стандарте используют следующие термины, определенные в ГОСТ 34971:

а) значение данных представления;

Ы абстрактный синтаксис;

c)    имя абстрактного синтаксиса.

d)    нмя синтаксиса передачи.    ;

10

Страница 16

ГОСГ Р ИСО/МЭК 8824—И

В настоящем стандарте используют также следующие термины, определенные в ИСО 6523:

a)    организация — источник кодов;

b)    код организации.

c)    .Международный кодовый определитель.

4 СОКРАЩЕНИЯ

ACII.I — абстрактно-синтаксическая нотация версии I

UTC — Coordinated Universal Time {всемирное согласованное время)

!CD — International Code Designator (Международный кодовый определитель)

L)CC — Data Country Code (цифровой код страны)

DNIC — Data Network Identification Code (идентификационный код сети передачи данных)

5 СИСТЕМА ОБОЗНАЧЕНИИ. ИСПОЛЬЗУЕМАЯ В НАСТОЯЩЕМ СТАНДАРТЕ

i

Нотация ДСН.1 строится из последовательностей знаков знакового набора ДСН.1, определенного и разделе 7.

Каждый конкретный случай использования нотации ДСН.1 содержит знаки из знакового'набора АСИ.1, сгруппированные в элементы В разделе 8 определяются все последовательности знаков, образующие элементы нотации АС! 1.1. н каждому элементу присваивается имя

Нотация ACH.I определяется в 9 (н последующих разделах) путем описания совокупности последовательностей .элементов, которые образуют правильные варианты использования нотации ДСН.1, и определения семантики каждой такой последовательности.

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

5.1 Продукции

Новая (более сложная) совокупность последовательностей, допустимых в ДСН.1, определяется с помошью продукции. Продукция, используя имена совокупностей последовательностей, определенных в настоящем стандарте, строит новую совокупность последовательностей с помощью двух следующих способов:

а) образование новой совокупности из последовательностей, содержащихся в любой из исходных совокупностей, либо

II

Страница 17

ГОСТ 1> ИСО МЭК 8824-93

b)    образование новой совокупности из всех последовательностей. которые могут быть получены путем выбора одной последовательности нз каждой исходной совокупности н соединения выбранных последовательностей в заданном порядке.

Каждая продукция состоит нз следующих частей, образующих одну или несколько строк, в следующем порядке:

а) имени новой совокупности последовательностей;

bj знаков : : >-

c)    одной или нескольких совокупностей - вариантов последовательностей, определенных по правилам, описанным в 5.2. и разделенных знаком :

Последовательность присутствует в новой совокупности, если она присутствует в одной или нескольких совокупностях-вариантах. Ссылки но новую совокупность в настоящем стандарте осуществляются путем задания имени нз а).

Иримс-чзинс. Если одиа и га же последовательность присутствуй а нескольких совокупностях* пар и» игах. то .-.юОая семантических неоднозначность полученного обозначения сминается с помошыо других частой «киной поста»» вапльности. определяемой дайкой продукцией,

Г>.2 Совокупности варианты

Каждую нз совокупностей-вариантов, упомянутых в ЭР!с, задают с помощью списка имен. Каждое из зтнх имен является либо именем элемента, либо именем совокупности последовательностей, определенных с помощью продукции в настоящем стандарте

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

5.3 Пример продукции

Значение СтрокаБнт :: - b-строка '

h-строка |

{Список Идентификаторов)

Приведенная выше запись является примером продукции, которая связывает имя Значение-СтрокаБит со следующими последовательностями:

a)    произвольным элементом «Ь-строка»;

b)    произвольным элементом «h-строка»;

12

Страница 18

ГОСТ Р И СО/М ЭК RR-24—»3

с) произвольной последовательностью на совокупности с именем «Список-Идентификаторов»,    перед которой следует

знак {и за которой следует знак}.

Приксчанкс. Знаки (и) ямяются именами элементов, состоящими из идного знака, соответственно. {и}.

«Список-Идентификаторов» в данном примере должен быть определен другой продукцией, которая может быть приведена как до. так и после продукции «Значсние-СтрокаБит*.

5.4    Расположение текста

Каждая продукция, используемая в настоящем стандарте, предваряется пустой строкой; за продукцией также следует пустая строка. Внутри продукции пустые строки отсутствуют. Продукция может либо состоять из одной строки, либо быть разбитой на несколько строк. Расположению текста продукции не придается какого-либо значения.

5.5    Рекурсия

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

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

5.6    Ссылки на совокупность последовательностей

В настоящем стандарте ссылки на совокупность последовательностей (часть нотации AC1I.I) осуществляются указанием первого имени в продукции (перед :: = ); если ссылка на имя не является частью продукции, имя обрамляется знаками " для того, чтобы отличить его от остального текста на естественном языке.

5.7    Ссылки на элемент

В настоящем стандарте ссылки на элемент осуществляются указанием имени элемента; если имя не является частью продукции, оно обрамляется знаками " для того, чтобы отличить его от остального текста на естественном языке

5.8    Теги

Тег задается указанием его класса и номера в классе. Определены следующие классы тегов: универсальный (universal) пользовательский (private) контекстно-зависимый (context-spesific)

Номер задается в виде неотрицательного целого числа в деся тичной системе счисления.

Страница 19

ГОСТ Р И СО/М ЭК 8Я24-93

Ограничения на теги, присваиваемые пользователем ACH.I, определены в разделе 24.

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

Примечание. Дня последующих версий настоящего стандарта резервируется дополнительное множество тегов,

Таблица 1 — Присвоение тегов универсального класса

UNIVERSAL

J

UNIVERSAL

2

UNIVERSAL

3

UNIVERSAL

4

UNIVERSAL

5

UNIVERSAL

6

UNIVERSAL

7

UNIVERSAL

8

UNIVERSAL

9

UNIVERSAL

10

UNIVERSAL

12-15

UNIVERSAL

16

UNIVERSAL

17

UNIVERSAL

25—27

IR—22.

UNIVERSAL

23-24

UNIVERSAL

28-

Булевский тип Целочисленный тип Тип «строка битое»

Тип «строка ох7сто[>»

Вырожденный тип

Тип «идентификатор объекта»

Тип «описатель иОт-екта»

Внешний тип

Т«о «дейаавгелькос число»

Перечислительный таи

Зареюрпиро&аны для последующих версий настоящего стандарта

Тины «последовательность» и «последовательность из»

Тмим «множество»- и «множество на»

Типы «строка знаков*

Типы «время»

Зарезервированы ллч последующих версий насгояшс со стандарта

в ИСПОЛЬЗОВАНИЕ НОТАЦИИ ACH.I

6.1. Обозначения нотации ЛСН.) для определения типа определяются продукцией «Тип» (см. 12.1).

6.2 Обозначения нотации АСН. 1 для определения значения определяются продукцией «Значение» (см. 12.7).

Примечание Вообще говоря, меволможмо интерпретировать значение, не зная типа, к которому оно относится.

6.4    Обозначения нотации АСН.1 для присвоения значения ссылочному имени значения определяются продукцией «Присвоение Значения* (см. 11.2).

6.5    Обозначения вида «ПриевоениеТипа» и «ПрисвоениеЗиачс-ния* должны использоваться только внутри обозначения вида «Оп ределенисМодуля» (см. 9.1).

Страница 20

ГОСТ Р ИСО.'МЭК 8824-93

7 НАБОР ЗНАКОВ НОТАЦИИ АСН.»

7.1 Каждый элемент ACH.I состоит из последовательности знаков, перечисленных о таблице 2. за исключением случаев, описанных в 7.2 и 7.3.

Таблица 2 — Набор знаков ACH.I

от

А до

Z

от

а до

г

от

0 до

9

: —

( )

< ■

<) f

1 “

* *

Примечания

1    Дополнительно к знакам, перечисленным в таблице 2. а макронотации ис-ноль-ук»т знаки | и > (см приложение А).

2    В стандартах, производных от данного стандарта, которые будут разработаны национальныии организациями по стандартизации, знаки, отсутствующие к таблице 2, могут присутствовать в следующих элементах (пять последних зле-мет»-» определяются п приложение А)

—    Ссылка НэТип (8.2.1);

—    Идентификатор (8.3);

СсылкапаЗначение (8.4);

Ссы.*каНаЛ1одуль (8 5):

Махроссылка (А.2.1);

—    СсылкаНа Продукцию (А 2.2):

—    ЛохальнаяСсылкаНаТна (A.23J;

—    ЛокальиаяСсы.ткаНаЗпгчсине (А.2.4);

—    а-строка (А.2.7).

Л В тех случаях, когда используют дополнительные знаки национальных алфавитов. о которых отсутствует различие между строчными н прописными буквами, синтаксическое различие, достигаемое за счет использования строчных и прописных Оука и некоторых из перечисленных выше элементов АСН I. должно обес1к:чи1>аться каким-то другим способом

7.2    При использовании нотации для определения значения типа «строка знаков» в обозначение нотации ACH.I могут входить все знаки заданного знакового набора, обрамленные знаками» (см. 8.11).

7.3    Дополнительные символы (не включенные в таблицу 2) могут входить в состав элемента «комментарий» (см. 8.6).

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

7.5    Строчные и прописные буквы следует рассматривать как различные знаки.

3 3«-к. 223

15

Страница 21

ГОСТ t> ИСО МЭК 8824-93

8 ЭЛЕМЕНТЫ *СН.1

8.1    Общие правила

8.1.1    В следующих подразделах определяется, с помощью каких знаков образуются элементы ACH.I В каждом случае дается имя элемента и определение знаковых последовательностей, из которых может состоять элемент.

Примечание. В приложении Д определяются дополнительные элементы, испольэуютнсся к мзкронотаиия.

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

8.1.3    Длина строки не ограничивается.

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

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

8.2 Ссылки на тип

Имя элемента — СсылкаНаТип

8.2.1    Элемент «СсылкаНаТип» должен состоять из произвольного количества (большего или равного единице) букв, цифр н дефисов. Начальный знак должен быть прошеном буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.

Примечание-. Г1 раки.-.а. относящиеся к использовании дефиса. пв.мится to избежание неоднозначности, которая может быть пытана наличием комментария, c.u'.iy wu4ei о за элементом.

8.2.2    Элемент «СсылкаНаТип» не должен совпадать с одной *м зарезервированных знаковых последовательностей, перечисленных в таблице 3.

8.3 Идентификаторы

Наименование элемента — Идентификатор

Элемент «идентификатор» должен состоять из произвольного количества (большего или равного единице) букв, цифр и дефисов. Начальны» знак должен быть строчной буквой. Последний знак не

Страница 22

ГОСТ Р ИСО'МЭК 8824-W

должен быть дефисом Два дефиса не должны следовать друг за другом.

Примечание. Правила, относящиеся к использованию дефиса, вводятся йо избежание неоднозначности, которая может быть (гызлаиа наличием комментария. следующего ли ЫемеИТОМ.

ТаблицаЗ — Зарезервированные последовательности знаков

BOOLEAN

BEGIN

INTEGER

END

BIT

DEFINITIONS

STRING

EXPLICIT

OCTET

ENUMERATED

NULL

EXPORTS

SEQUENCE

IMPORTS

OF

REAL

SET

INCLUDES

IMPLICIT

MIN

CHOICE

MAX

ANY

SIZE

EXTERNAL

FROM

OBJECT

WITH

IDENTIFIER

COMPONENT

OPTIONAL

PRESENT

DEFAULT

ABSENT

COMPONENTS

DEFINED

UNIVERSAL

BY

APPLICATION

PLUS-IFINITY

PRIVATE

MINUS INFINITY

TRUE

TAGS

FALSE

8.1 Ссылки на значение

Имя элемента — Ссылка! 1аЗначение

Элемент «СсылкаНазначение» должен состоять из последовательности знаков, удовлетворяющей определению элемента «идентификатор* в 8.3. Отличие элемента «СсылкаНаЗначсние» от элемента «идентификатор» при анализе конкретного использования настоящей нотации достигается различием контекстов, в которых появляются эти элементы.

8.5 Ссылка на модуль

Имя элемента — СсылкнНаМодуль

Элемент «СсылхаНаЛ\одуль» должен состоять из последовательности знаков, удовлетворяющей определению элемента «Ссылка-НзТнп» в 8.2 Отличие элемента «СсылкаНаМодуль» от элемента

Страница 23

ГОСТ Р ИСО/МЭК 8824-93

«СсылкаНаТип» при анализе конкретного использования настоящей нотации обеспечивается различием контекстов, в которых появляются эти элементы.

8.6    Комментарий

Имя элемента - Комментарий

8.6.1    Ссылки на «комментарий» не используют в рамках определения нотации АСН.1. «Комментарий», тем не менее, может присутствовать в любом месте между другими элементами нотации ACH.J, формально не имея никакого значения.

8.6.2    «Комментарии» начинается с пары следующих друг за другом дефисов и заканчивается другой парой следующих друг за другом дефисов, либо концом текущей строки, в зависимости от того/ что последует раньше. Комментарий не может содержать в себе пару следующих друг за другом дефисов, кроме той. с которой он начинается и, если она имеется, той. которая его завершает. Комментарий может содержать знаки, не являющиеся элементами знакового набора, определенного в 7.1 (см. 7.3).

8.7    Пустой элемент

Имя элемента — пусто

Элемент «пусто» не содержит никаких знаков Он используется в обозначениях 5 при задании совокупностей-вариантов в тех случаях. когда требуется указать, что возможно отсутствие всех приведенных альтернатив.

8.8. Элемент «число»

Имя элемента — число

Элемент «число» состоит из одной или более цифр. Первая цифра не может быть нулем, за исключением случая, когда «число» состоит из одной цифры.

8.9    Элемент «двоичная строка*

Имя элемента — Ь-строка

Элемент «двоичная» строка» состоит из произвольного количества (от нуля и более) нулей и единиц, перед которыми следует знак ' и за которыми следует пара знаков:

Пример — '01101100' В

8.10    Элемент «шестнадцатеричная строка*

Имя элемента - 1; строка

8.10.1 Элемент «шестнадцатеричная строка» состоит из произвольного количества (от цуля и более) знаков

А В С D Е F 0 1 2 3 4 5 6 7 8 9, перед которыми следует знак ' и за которыми следует парз знаков: 'Н

Пример    'ЛВ0186' И

Страница 24

ГОСТ Р ИСО/МЭК 8824-9*

8.10.2 Каждый знак используется для обозначения значения ио-луоктета в шестнадцатеричном представлении.

8.11 Элемент «строка знаков»

Имя элемента — с-строка

Элемент «с-строки* состоит из произвольного количества (от нуля н более) знаков из набора знаков, который определяется типом рассматриваемой строки знаков, перед которыми и вслед за которыми следует знак . Если набор знаков содержит знак ", то он представляется в элементе «с-строка* парой знаков ". Набор зна^ ков. о котором идет речь, совсем необязательно ограничивается знаками, перечисленными в таблице 2, он определяется типом рассматриваемого элемента «с-строка» (типом, для которого «Строка-Знаков» является значением) (см 7.2).

пример

8 12 Элемент «присвоение*

Имя элемента -«::=*

Этот элемент состоит из последовательности знаков

Примечание. Эта послсдовачедьцостъ не содержит про&мо» (см 812)

И. 13 Элементы, состоящие из одного знака

Имена элементов —

{

}

<

(

)

[

- (дефис)

Элемент, имеющий имя. входящее в приведенный выше перечень, состоит из одного символа, образующего это имя.

8.14 Элементы — ключевые слова

Имена элементов —

BOOLEAN

INTEGER

BIT

STRING

19

Страница 25

ГОСТ Р ИСО/МЭК 1W24-M

OCTET

NULL

SEQUENCE

OF

SFT    '

IMPLICIT

CHOICE

ANY

EXTERNAL

OBJECT

IDENTIFIER

OPTIONAL

DEFAULT

COMPONENTS

UNIVERSAL

APPLICATION

PRIVATE

TRUE

FALSE

BEGIN

END

DEFINITIONS

EXPLICIT

ENUMERATED

EXPORTS

IMPORTS

REAL

INCLUDES

MIN

MAX

SIZE

FROM

WITH

COMPONENT

PRESENT

ABSENT

DEFINED

BY

PLUS-1NFINITY

MINUS-1NF1NITY

TAGS

Элементы с именем, входящим в приведенный выше перечень, состоят из последовательности знаков, составляющей это имя.

Страница 26

ГОСТ Р ИСО/МЭК 8824-М

Примечания

1    В приведенных пыше последовательностях знаков отсутствуют пробелы.

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

9 О ПРЕДЕЛЕ НИ F. МОДУЛЯ

9.1 «ОпределениеМодуля» задается следующими продукциями:

ОпределениеМодуля :: —

ИдентификаторМодуля

DEFINITIONS

ТегиПоУмолчанию € : : = »

* BEGIN *

ТелоМодуля

END

ИдентификаторМодуля :: =

СсылкаНаМодуль

ПрисвоснныйИдситификатор

ПрнсвоеииыйИдентификатор :: -Значенне-ИдеитифнкаторОбъектс J пусто

• ТегиПоУмолчанию : : =

EXPLICIT TAGS |

IMPLICIT TAGS I пусто

ТелоМодуля : : *

ВыходиыеСсылки ВходиыеСсылки СписохПрисвоений | пусто

ВыходиыеСсылки :: =

EXPORTS ВыходиыеСимволы { пусто

ВыходиыеСимволы : : =

СписокСнмлолов ;

пусто

ВходиыеСсылки : : =

IMPORTS ВходныеСимволы ! пусто

ВходныеСимволы :: =

СписокСимволовИзМодуля J пусто

СписокСимволовИзМодуля :: =

СимволыИзМодуля СписокСимволовИзМодуля }

Страница 27

ГОСТ Р ИСО/МЭК 8824-93

Сим вол ы И зМодул я

СимволыИзМодуля :: -

СпнсокСимполов FROM ИдентификаторМодуля

СписокСнмволов :: =

Символ. СписокСнмволов | Символ

Символ : : —

СсылкаНаТил | СсылкаНаЗначсннс

СпнсокПрнсвоений :: —

Список Присвоений Присвоение }

Присвоение

Присвоение ■:: =

ПрисвоеннеТипа J ПриовоениеЗиачеиия

Примечания

1    В приложении А определяются последовательности вида «Макроопределение», которые также могут присутствовать о последовательности вида «Спи сокПрисвоениЙ». Выражения, определяемые с помощью макроопределений, могут быть приведены как до, так и после самого макроопределения, в рамках 70 го же модуля.

2    В отдельных (исключетельиых) случаях, для использования и качестве примеров, а также для определения типов с тегами универсального класса, последовательность пида «ТслоМодуля» может использоваться самостоятельно, а «с как часть последовательности «ОпредсленкеМодуля».

3    Продукции «ПрисюенмеТипэ» и «ПрисиоеннеЗиачсния» определены в разделе II.

4    Объединение типов данных, описываемых с помощью нотации ACH.I. и модули необязательно определяет способ формирования из значений данных представления поименованных абстрактных синтаксисов, в целях определении контекста представления.

5    Значение, выбранное для последовательности «ТегиПоУмолчанию», влияет только иа те типы, которые явно определены в модуле. Оно не влиягт на интерпретацию типов, определенных входными ссылками

6    В качестве «символа» может использоваться «макроссылка» (см приложение А).

9.2    Если дли последовательности «ТегиПоУмолчанию» было ныбрано «пусто*, то подразумевается вариант «EXPLICIT TAGS».

Примечание. Смысл вариантов «EXPLICIT TAGS» и «IMPLICIT TAOS» определяется в разделе 26.

9.3    «СсылкаНаМодуль», присутствующая в продукции «Опреде-леннеМодуля», называется именем модуля. Имена модулей выбирают таким образом, чтобы обеспечить полноту и согласованность всех последовательностей вида «присвоение», присутствующих в составных частях «ТелоМодуля» всех последовательностей вида «О пределен иеМодул я», в которых используется данное'имя модуля. Множество последовательностей вида «присвоение» считают полным и согласованным, если для каждой содержащейся в ней последовательности вида «СсылкаНаТил» или «СсылкаНаЗначе-

22

Страница 28

ГОСТ р ИСО/МЭК 8824 -95

ние», соответствует в точности одна последовательность вида «При-своениеТипа» или «ПрнсвоениеЗначения* соответственно, которые устанавливают связь между именем и, соответственно, типом или значением.

9.4 Имена модулей должны использоваться только один раз в сфере применения определения модуля, за исключением случаев, определенных в 9.10.

Примечание. Рекомендуется следующая форма имея модулей, определенных я стандартах ИСО:

ISOxxxx— уууу '

где хххх — номер стандарта ИСО, а уууу — подходящая аббревиатура для названия этого международного стандарта (например. JTM, FT AM или CCR). Аналогичное соглашение может использоваться другими организациями, выпускающими стандарты.

95 Если «ПрисвоенныйИдентификатор» включает «Значенне-ИдеитифнкаторОбъскта», то последний однозначно идентифицирует модуль.

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

9.6    «ИдентификаторМодуля» последовательности «Символы* ИзМодуля» должен присутствовать в «ОпределенниМодуля» для некоторого другого модуля, однако, если он включает «Значение-ИдентификаторОбъекта». то «СсылкиНаМодуль» могут различаться в этих двух определениях.

Примечания

1    «СсылкаНаМодуль», отличная от используемой в другом модуле, может быть кспольэоаама только в том случае, корда входные символы заимствуются из двух разных модулей с одинаковыми именами (модулей, имена которым'были присвоены с нарушением 9.4. Использование альтернативных. отличных от исходных. имен позволяет сделать ати модули доступными для использования о теле определяемого модуля (см. 9.8).

2    сслк ссылка на модуль осуществляется с использованием как «Ссылки* ИаМодуль», гак я «Зиачеиия-ИдентификаторОбыкга». to последнее является! решающим.

9.7    Каждый «ВыходнойСимвол* должен быть определен в данном (определяемом) модуле.

Примечание Рекомендуется все символы, ссылки на которые допустимы из других модулей, включать а «ВыходиысСимволы» Если таких символов нет, то следует выбрать альтернативный вариант «пусто» (ио не «ВыходныеСсылкн»).

9.8    Каждый символ из конструкции «СимволыИзМодуля» должен быть определен в модуле, задаваемом «ИдентнфнкаторомМо» дуля» конструкции «СимволыИзМодуля*. Если в определении ^того модуля используют конструкцию «ВыходныеСсылки». то ка#сг. дый 'символ должен присутствовать1 в ее «ВыходныхСимволах*

Страница 29

ГОСТ Р ИСО/МЭК 8824-93

9.9    Любой «символ» из конструкции «СимволыИзМодуля» может присутствовать в «ТелеМодуля» 8 конструкции «Определен-яыйТнп» (если символ — «СсылкаНаТип») или «Определенное1 Значение» (если символ — «СеылхаНаЗначение»). Смысл, связанный с этим «символом», — тот же, что и в модуле с соответствующим «ИдентификаторомМодуля». Если «символ» присутствует в одном из «присвоений» нз «СпнскаПрнсвоеннЙ» (что не рекомендуется) или присутствует в одной или нескольких конструкциях «СимволыИзМодуля», то он должен использоваться только в конструкциях «ВнешняяСсылкаНаТнп» или «ВнешняяСсылкаНа Значение», в которых «СсылкаНаМодуль» совпадает с ссылкой на модуль в конструкции «СимволыИзМодуля* (см. 9.10). Если он не присутствует в таких конструкциях, то он может непосредствен но входить в конструкции «ОпределенныйТип» или «Определенное Значение».

9.10    За исключением случаев, отмеченных в 9.9. для обращения к элементам «СсылкаНаТип» и «СсылкаНаЗначение» в модулях, отличных от тех, где вышеупомянутые элементы были определены, используют последовательности вида «ВнешняяСсылкаНаТнп» и <ВнешняяСсылкаНзЗначение», определяемые следующими продукциями:

ВнешняяСсылкаНаТнп :: —

СсылкаНаМодуль

СсылкаНаТип

ВнешняяСсылкаНаЗначеьнс ;; *

Сс ыл каН аМодуль

СсылкаНаЗначение

10 ССЫЛКИ НА ОПРЕДЕЛЕНИЯ ТИПОВ И ЗНАЧЕНИЯ

10.1    Для задания ссылок на определения типов и значений используют последовательности, определяемые следующими продукциями:

ОпределенныйТип ::=*

ВнешияяСсылка! 1аТип |

(    СсылкаНаТип

ОпределенноеЗначение :: =

ВнешняяСсылкаНаЗначение ' СсылкаНаЗначение

10.2    За исключением случаев, отмеченных в 9.10, варианты «СсылкаНаТип» и «СсылкаНаЗначение» в приведенных выше про-

24

Страница 30

ГОСГ Р ИСО/МЭК 8824-93

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

10.3 «ВнсшняяСсылкаНаТип» и «ВнешняяСсылкаНаЗиачение» должны использоваться только в тех случаях, когда в модуле, определяемом элементом «СсылкаНаМодуль», данной ссылке на тип или значение был присвоен, соответственно, некоторый тип или некоторое значение (см. 11.1 и 11.2).

II ПРИСВОЕНИЕ ТИПОВ И ЗНАЧЕНИЙ

11.1    Присвоение ссылке на тип некоторого типа описывается продукцией «ПрисвоениеТнпа»:

ПрисвоениеТнпа ::=

СсылкаНаТип

« :: =»

Тип

Элемент «СсылкаНаТип» не должен совпадать с каким-либо именем, используемым для ссылки на один из типов «строка знаков», определенных в части 2. а также не должен совпадать с ка-ким-лнбо именем, используемым для ссылки на типы, определенные в части 3.

11.2    Присвоение ссылке на значение некоторого значения описывается продукцией «ПрисаоениеЗначения»:

ПрисвоениеЗначення :: =*

* СсылкаНаЗначенне Тип < :: = »

Значение

Последовательность «Значение», присваиваемая ссылке на значение, должна быть допустимым выражением (см. 12.7), описывающем некоторое значение, имеющее тип. определяемый последовательностью «Тип».

12 ОПРЕДЕЛЕНИЕ ТИПОВ И ЗНАЧЕНИЙ

12.1 Тип определяется одной из последовательностей вида «Тип»:

Тип -* ВстроенныйТнп } ОпределенныйТпп ; Подтип

(см. 10.1)    (см.    37)

ВстроеыныйТнп :: =

БулевскийТип

Целочислен н ы йТи п

2>

Страница 31

ГОСТ р ИСО/МЭК 8824 -93

Тии-СтрокаБктов    {

Тип-СтрокаОктетов    |

ВырожденныйТип    j

Тип-Последовательность    |

Тнп-ПослсдовательжхгьИз    J

Тип-Множество    J

Тнп-МножествоИз    |

ВыборочныТил    !

СелсктквныйТип    J

ТегированныйТнп    |

ПроиэвольныЙТнп    !

Тип-ИдентификаторОбъекта    |

Тин-СтрокаЗнахов    !

Общеупотребительный! ип ПеречисленныйНт Тип-ДсйствителыюеЧисло    |

Примечания

1    В качестве последовательности вида «тип» также может использоваться обозначение типа, определенное с помощью махронотацни.

2    В последующих версиях настоящего стандарта могут быть определены другие встроенные типы.

12.2 Обозначение «ВстроенныйТип» определяется в последующих разделах.

12.3    Обозначение «подтип» определяется в разделе 4.

12.4    Тип. на который осуществляется ссылка, либо определен обозначением «ВстроенныйТил», либо присвоен ссылке «Опреде-ленныйТип».

12.5    В некоторых обозначениях нотации, в которых имеется ссылка на какой-либо тип. этот тип может быть поименован. В этих случаях настоящий стандарт предписывает использование обозначения вида «ПонмеиоваиныйТнп»:

ПоименовэнныйТип :: =*

Идентификатор Тин    !

Тип    |

СелективныйТип

Обозначения вида «СелективныйТип» и обозначения для записи значений селективного типа определены в разделе 25.

Примечание. Обозначение вида «СслехтнэиыйТнп» содержит «Идентификатор». Если а качестве «Понме.чойаиногоТнпз» используют «Селсктнакый-Тип» (см. 25.1), то »тот идентификатор может быть частью обозначения для записи значения

12.6    «Идентификатор» не является составной частью типа и никак не влияет на тип Тип, на который дается ссылка последова-

26

Страница 32

ГОСТ У ИСО'МЭК 8824-W

тельностдо «ПоимснованныйТип», является тем же самым, что и тип, на который дастся ссылка последовательностью «Тип», вложенной в последовательность «ПоимснованныйТип».

J2.7 Значение какого-либо типа должно определяться одной кз последовательностей вида «Значение*:

Значение :: = ВстроенноеЗначение \ ОпредсленноеЗначенне ВстроенноеЗначение :: =

БулевскоеЗначение    |

ЦелочнсленноеЗначенис    J

Значение-СтрокаБитов    {

Значенне-СтрокаОктетов    {

ВырожденкоеЗначекис    !

Значение-Последовательность    J

Значение-ПоследовательностьИз    !

Значение-,Множество    }

Значение Множество Из    |

ВыборочноеЗначение    !

СелективноеЗначенне    J

ТегироваиносЗначейне    |

ПроизвольноеЗначение    \

Значение-ИдскткфикаторОбъекта J Значенне-СтрокаЗиаков    {

ПсречислителыюеЗначенне    J

Значение-ДействительноеЧисло. Примечание. В качестве последовательное™ вида «Значение* также может ис пользоваться обозначение значения, определенное с помощь» макроиота-цим (см. приложение А).

12.8 Если тип определяется с использованием одного из обозначений. приведенных слева в приведенном ниже перечне, то значение должно задаваться с использованием обозначения, приведенного справа Обозначение типа БулсвскнЙТнп ЦелочисленныйТип Тии-СтрокаБит Тип-СтрокаОктетов ВырожденныйТип Тип-Последовательность Тип-ПоследовательностьИз Тип-Множество

Обозначение значения БулевскоеЗначение ЦелочнсленноеЗначенис Значение-СтрокаБит Значенне-СтрокаОктетов ВырожденноеЗначение Значение- Последовательность Значение-ПоследовательностьИз Значение-Множество

27

Страница 33

ГОСТ Р ИСО.’МЭК 8824-м

Тип-МножествоИз ВыборочныйТнп ТегированныйТип ПроизволышйТнп Т нп- ИдентификаторОбъекта Т нп-СтрокаЗнаков Перечислительный Тип Тип-ДействнтельноеЧисло

Значение-множествоИз

ВыборочноеЗначение

ТегированноеЗначенне

ПронзвольиоеЗначенне

Значсние-ИлентификаторОбтскга

Зипчение-СтрокаЗнаков

ПсречнслительноеЗначенне

Значение-Действительное Чис'.о


Примечание. В последующих версиях настоящего стандарта могут быть определены дополнительные обозначения для записи значений. .

В случаях, когда тип является «Определен)!ымТипом», обозначения. используемые для записи значения, должны соответствовать обозначениям, применяемым для типа, породившего «Опрсделсн-ныйТип».

12.9    Обозначения для записи значений типов, определяемых обозначением «ОбщеупотребнтельныйТип», приведены в разделе 3.

12.10    Обозначение «ВстроенноеЗиачение* определяется в следующих разделах

12.11    Значение типа, ссылка на который задастся обозначением вида «ПоименованныйТип», определяется обозначением вида «По-нменоваиноеЗначенне»:

ПоимеиованноеЗначение :: -

Идентификатор Значение , Значение

где «Идентификатор» (если он задан) — тот же самый идентификатор. который использовался в обозначении «Поименованный’ Тип*. В 25.2 указаны дополнительные ограничения на «Поимсио ванноеЗначенне» для случая, когда «ПоименованныйТип» является «СелективнымТипом».

Примечание. «Идентификатор» ягмш-тся составной чаомо обозначении, по нс является составной частью значения.

12.12 «Идентификатор» является составной частью последовательности «ПоимеиованноеЗначение» в том и только том случае, когда он является составной частью последовательности «Поиме-нованныйТип».

Примечание. В том случае, когда используется вариант «Селектяниый-Тип*, «идентификатор» всегда включается в запись ’значения

13 ОБОЗНАЧЕНИЯ ДЛЯ БУЛЕВСКОГО ТИПА

13.1 Для ссылки на булевский тип (см, 3.13) должно использоваться обозначение «БулсвскийТип»:

Страница 34

ГОСТ Р ИСО/МЭК 8824—*3

БулевскийТип : : = BOOLEAN

13.2    Типы, определенные с помощью этого обозначения, имеют тег универсального класса I.

13.3    Значение булевского типа (см. 3.14 и 3.15) должно определяться обозначением «БулевскоеЗначение»:

БулевскоеЗначенне :: = TRUE | FALSE

14 ОБОЗНАЧЕНИЯ ДЛЯ ЦЕЛОЧИГ.Л ЕННОГО ТИПА

1-1.1 Для ссылки на целочисленный тип (см. 3.16) должно использоваться обозначение «ЦелочисленныйТип»:

ЦелочисленкыйТип : : —

INTEGER ! '

INTEGER {СписокПоименованныхЧисел}

СписокПоименованныхЧисел :: ~

ПонменованноеЧисло !

СписокПоименованныхЧисел. Поименованное Число

ПонменованноеЧисло —

Идентификатор(ЧнслоСоЗнаком) | Идентификатор (ОпределенноеЗначе нне)

ЧислоСоЗиаком :: = Число ! - Число

14 2 Вариант «число со знаком* не должен использоваться, если «число» является нулем.

14.3    «СписокПоименованныхЧисел» не является существенной составной частью определения типа. Эту последовательность не пользуют только в обозначениях для записи значений, описанных в 14.9.

14 4 «ОпределенноеЗначение» является ссылкой на значение целочисленного типа или тегированного типа, производного от целочисленного типа.

14.5    Значение каждой из последовательностей «ЧислоСоЗна-ком» и «ОпределенноеЗначение*. входящих в «СписокПоименованныхЧисел*. должны быть попарно различными и быть выделенными значениями целочисленного типа.

14.6    Элементы «идентификатор», входящие в «СпнсокПоименси; ванныхЧисел». должны быть различными.

14.7    Порядок следования последовательностей «ПонменованноеЧисло» в последовательности «СписокПоименованныхЧисел* не существенен.

14.8    Типы, определенные с помощью этого обозначения, имеют тег универсального класса 2.

29

Страница 35

ГОСТ Р НСО/МЭК 8824—93

14.9    Значение целочисленного типа должно определяться обозначением вида «Целочисленное Значение»:

ЦелочнсленноеЗначение :: =*•

ЧнслоСоЗнаком |

Идентификатор

14.10    «Идентификатор» в продукции «ЦелочнсленноеЗначение» должен совпадать с одной из последовательностей «Идентификатор», входящих в состав последовательности «ЦслочксленныйТип», которая определяет тип данного значения; «ЦелочисленноеЗначс-нне» в этом случае определяется числом, соответствующим заданному идентификатору в описании целочисленного типа

Примечание. При определении целочисленного значения, дли которого был ладан «Идентификатор» в определении типа, задание «ЦелочислснногоЗыа-чоння» в форме «Идентификатор» является предпочтительных.

IS ОБОЗНАЧЕНИЯ ДЛЯ ПЕРЕЧИСЛИТЕЛЬНОГО ТИПА

15.1    Перечислительный тип (см. 3.17) должен определяться обозначением «ПеречнслительныйТип»:

ПеречислительныйТип :: =

ENUMERATED {Перечисление}

Перечисление :: =

ПоимеиозанноеЧислэ !

ПоимеиованноеЧнсло, Перечисление

Примечания

1    Каждое значение имеет идентификатор, который связывается в этом обо-значении с определенным числом. Это позволяет контролировать представление значений данного типа и облегчает согласованное расширение ткоое, но ик пред-полагает наличие целочисленной семантики у значений данного типа.

2    Численные значения в обозначениях «ПоименоаанносЧмело», входя щи* в «перечисление*. не обязательно должны быть упорядоченными или смежными

15.2    Для каждого «ПонменованногоЧисла» «Идентификатор* и «ЧнслоСоЗнаком» должны отличаться от «Идентификаторов» и «ЧнселСоЗнаком» других «ПоименоаанныхЧисел», входящих н «Перечисление».

15.3    Перечислительный тип имеет тег универсального класса 10.

15.4    Значение перечислительного типа должно определяться обозначением «ПеречислнтельносЗначение»:

ПеречислнтельносЗначение :: — Идентификатор

16 ОБОЗНАЧЕНИЯ ДЛЯ ТИПА «ДЕЙСТВИТЕЛЬНОЕ ЧИСЛО»

16.1 Тип «действительное число» (см. 3.18) определяется обозначением «ТнпДействительноеЧнсло».

Страница 36

ГОСТ Р ИСО.'МЭК 8824-93

Тип-ДействительноеЧисло : : « REAL

16.2    Значения типа «действительное число» включают значения P1.US-1NFIN1TY и M1NUS-INFINITY вместо с действительными числами, которые могут быть представлены следующей формулой, содержащей три целочисленных аргумента, М. В и Е:

мхве.

где М называется мантиссой. В — основанием, a F. — порядком. М и Е могут принимать любые целочисленные значения, как положительные, так и отрицательные, а В принимает значения 2 или 10. Допускаются любые комбинации М. В и Е.

Примечания

1    Э-ror win может передавай. ючнек- значение любого числа, которое может быть прсдстазлено в обычном оборудовании с плавающей запятой и любое число и десятичном представлении с конечным числом цифр.

2    Кодовое представление этого тине, определенное в ГОСТ Р ИСО/МЭК 8825, допускает лепоаьломииг «кований 2. 8 и 16 для двоичного представления действительных чисел н основания 10 для десятичного в виде последовательности пнзкчв. Выбор одного КЗ вариантов осуществляется отправителем.

16.3    Тип «действительное число» имеет тег универсального

класса 9.

16.4    Обозначения для определения значения типа «действительное число» должны иметь вид «Значение-ДействительиоеЧнс-ло»:

Значение-ДействительноеЧисло : : «■

ЧнслепноеДейсгаительноеЗиачение * СпециальноеДействительноеЗначение ЧисленноеДействительноеЗначение : : =

{Мантисса. Основание, Порядок) j О Мантисса .. = ЧислоСоЗнаком Основание :: = 2 !    10

Порядок :: = ЧислоСоЗнаком СпецнальиосДснствнтелыюеЗначенне :: ~

PLUS-INFINITY | MINUS-INFIN1TY Для нулевых значений должен использоваться вариант «0» конструкции ЧислеиноеДействительноеЗиачение, а альтернативный вариант этой конструкции использоваться не должен.

17 ОБОЗНАЧЕНИЯ ДЛЯ ТИПА «СТРОКА БИТОВ»

17.1 Для ссылки на тип «строка битов» (см. 3.19) должно использоваться обозначение «Тип-СтрокаБитов»:

Тип-СтрокаБит ; : =

BIT STRING !

4 Зек. 223

31

Страница 37

ГОСТ р ИСО.'МЭК 8*24- 93

BIT STRING {СписокПонменованныхБит}

СписокПоимеиованныхБит :: =

ПонменованныйБит J

СписокПонменованныхБит, ПонменоваиныйБит ПоименованныйБит :: —

Идентификатор (Число) ; Идентификатор (ОпредсленноеЗна-чение)

17.2    «СписокПоимеиованныхБит* не является существенной составной частью определения типа. Эта последовательность используется только в обозначениях для записи значений, определенных в 17.8.

17.3    Первый бит в строке бит имеет нулевой номер. Замыкающим битом называется бит. который заканчивает строку бит.

Примечание. Термины первый бит и замыкающий Сиг ^используют ири описании как обозначений для задания значений, гак и правил кодирования.

17.4    «ОлрсдоленноеЗначеннс» должно представлять собой ссылку на некоторое неотрицательное значение целочисленного типа, помеченного типа, производного от целочисленного типа, или подтипа целочисленного типа.

17.5    Значения последовательностей «Число» н «Определение

Значение», входящих в состав последовательности «СписокПоиме-нованныхБит»,    должки    быть попарно различными; каждое    из этих

значений    используют    в    качестве номера выделенного бита    при    за

дании значения строки бит.

17.6    Все элементы «Идентификатор», входящие в «СписокПои-ыенованиыхБит». должны быть различными.

Примечание. Порядок следования последовательностей «Поимеиозаи-ныйБмг» в последовательности «СписокПонмеиэванныхБнг> не еущесткнси

17.7    Этот тип имеет тег универсального класса под номером 3.

17.8    Зна-юнче типа «строка бит» задается ннжс-слеауюшнм обо-згиис.'шем «3 аче.т; • СгрокаБитл:

Значеиие-СтрокаБнт :: -

b-строка    !

hстроча    !

{Сш.сокИдентификаторов} !

{ }

СписоьИдентнфнхаторов .: =«

И:к-нт.|,Ьнкатор !

СписочИденгификаторов, Идентификатор

17.9    Каждый элемент «Идентификатор», в.чодяшнй в последовательность «Значопие-СтрокаБит», должен совпадать с некото-

3i

Страница 38

ГОСТ Р И со. М эк 8824 — 93

рым элементом «Идентификатор» в составе последовательности «Тип-Строка-Бит», определяющей тип. к которому относится данное значение.

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

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

17.11    Обозначение вила «{СписокИденТифнкаторов}» и «{ }» для последовательности «Значение-СтрокзБит» могут использоваться только в том случае, когда присутствие или отсутствие замыкающих нулевых бит несущественно. Этот вариант обозначения задает строку бит с единицами в битовых позициях с номерами, задаваемыми последовательностями «Идентификатор», и со всеми остальными битами, равными нулю.

Примечание. Последовательность «{ }» используют для обозначения значении строки бяг, не содержащей ни одного бита, равного единице.

17.12    При описании правил кодирования для строк бит для ссылок на соответствующие биты используют термины первый бит и замыкающий бит, определенные выше.-

17.13    При использовании обозначения «Ьстрока» первый бит записывают слева, е замыкающий бит — справа.

17.14    При использовании обозначения вида «h-строка» старший бит каждой шестнзлцатеричнзЛ цифры соответствует начальному (первому слева) биту в представляющей ее строке бит.

Примечание. Описанные обозначения никоим образом ис ограничим «от способа размещения строки бит по октетам для передачи, который реализуется правилами кодирования

17.15    Обозначение «h-строка* может использоваться только в следующих случаях:

a)    если значение строки бит состоит из количества бит, кратного четырем, или

b)    присутствие или отсутствие последних нулевых бит несущественно.

Пример А98А'Н и

'1010100110001010'В являются эквивалентными обозначениями одного н того же значения битовой строки

33 -

4*

Страница 39

ГОСТ Р И СО/М ЭК R824—93

18 ОБОЗНАЧЕНИЯ ДЛЯ ТИПА «СТРОКА ОКТЕТОВ»

18.1    Для ссылки на тип «строка октетов» (см. 3.20) должно использоваться обозначение «Тип-СтрокаОктетов»:

Тип-СтрокаОктетов :: = OCTET STRING

18.2    Этот тип имеет тег универсального класса 4.

18.3    Значение типа «строка октетов» должно определяться обозначением вида «Значенис-СтрокаОктетов»:

Значение-СтрокаОктетов :: =

Ь строка | h-строка

18.4    При описании правил кодирования для строк октетов для ссылок на соответствующие октеты используют термины первый ок‘ тет и замыкающий октет, а для ссылок на соответствующие биты внутри октета — термины «старший бит» н «младший бит*.

18.5    При использовании обозначения вида «b-строка» самый левый бит является старшим битом первого октета. Если «Ь-стру ка» состоит из некоторого количества бит, не кратного восьми, она должна интерпретироваться таким образом, как если бы она содержала такое наименьшее количество дополнительных замыкающих нулевых бит, которое требуется для обеспечения кратности восьми.

18.6    При использовании обозначения вида «h-строка» крайняя левая шестнадцатеричная цифра является старшим полуоктетом

первого окгета. Если «h-строча* состоит из нечетного числа шестнадцатеричных цифр, то она должна интерпретироваться таким образом, как если бы она содержала еще одну дополнительную замыкающую нулевую шестнадцатеричную цифру.

19 ОБОЗНАЧЕНИЯ ДЛЯ ВЫРОЖДЕННОГО ТИПА

19.1    Для ссылки на вырожденный тип (см. 3.21) следует использовать обозначение «ВырождснныйТип»:

ВырождснныйТип :: =NULL

19.2    Этот тип имеет тег универсального класса 5.

19.3    Для ссылок .ча значение вырожденного типа должно ис-пользопаться обозначение «ВирожденноеЗначеине»:

ВырождснпоеЗначеннс :: = NUL1.

20 ОБОЗНАЧЕНИЯ ДЛЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ»

20.1 Для построения типа «последовательность» (см. 3.22) из других типов используют определяемое ниже обозначение «Тии-Последовзтельность»:

Страница 40

ГОСТ р И СО/М ЭК 8814—«3

> Тип-Последовательность :: =

SEQUENCE {СписокТнпов-Компонамтов} J

SEQUENCE { }

СписокТнпов-Компонентов :: «•

Т к л-Компонент ;

СписокТнпов-Комлонентов. Тип-Компонент

Тип-Компонент :: =

ПонменозанныйТнп

ПоимеиозанныйТнп OPTIONAL    !

ПонменсгаанныйТип DEFAULT Значение    !

COMPONENTS OF Тип

20.2    «Тип» в четвертом варианте продукции «Тип-компонент» должен быть типом «последовательность», Использование варианта «COMPONENTS OF Тип» определяет включение, в этом месте, в «СписокТнпов-Компонентов» всех последовательностей «Тип-Компонент». имеющихся в типе, заданном обозначением «Тип».

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

20.3    Для каждой последовательности нз одного или нескольких следующих друг за другом «Типов-Компонентов», отмеченных как «OPTIONAL» или «DEFAULT», теги этих «Типов-Компонентов» должны быть различными и отличаться от тега «Типа-Компонента», непосредственно следующего за этой последовательностью, (см. раздел 26).

20.4    Если используют ключевые слона «OPTIONAL» или «DEFAULT», то при формировании значения нового типа, а также при формировании, в соответствии с правилами кодирования, информации для передачи значение соответствующего типа-компонента может быть опущено.

Примечания

1    Если элементы «Идентификатор» присутствуют не и каждой последовательности «ПонмемованнойТмп». то обозначение значении для нового типа может: оказаться неоднозначным.

2    Правилами кодировании гарантируется, что лодлроьанне лначении-послсло-аательяости, о котором был опущен элемент, заданный с использованием ключевых слов «DEFAULT» или «OPTIONAL», будет совпадать с кодированием такого значения последовательности, для которого соответствующий тип-компонент был опущен при описании типа Это может оказаться полезным при определении подмножеств.

20.5    Пропуск значения типа, заданного как «DEFAULT», в точности эквивалентен включению значения, определенного последовательностью «Значение», которая должна быть допустимой последовательностью для обозначения значения тина, определенного

35

Страница 41

ГОСГ Р ИСО/МЭК 8824—93

сос чсдооятсльностью «Тип* в последовательности «Понмснован-

•»ийТнп*.    !

20.6    Элементы «Идентификатор* (если они заданы) должны быть различными по всех последовательностях вида «Поименно-вашшАТил*. входящих з последовательность «СписокТиповКом-понентов».

20.7    Все типы «последовательность» имеют тег универсального класса 16.

Примечание. Типы «последовательность из» имеют тот же самый тег <см 21.3).

20.8    Обозначения для определения значения типа «последовательность» должны иметь вид «Значение-Последовательность»:

Значение-Последовательность :: =

{СлисокЗначсний-Комнонситов} ,

СпнсокЗначений-Компонентов :: =

ПокменованноеЗначенне J

СпнсокЗначений-Компонентов, ПонмеиованноеЗначение

20.9    Обозначение «{ }» используют лишь в следующих случаях:

a)    все последовательности вида «Тип-Компонент» в последовательности «Тип-Последовательность» отмечены как «DEFAULT* или «OPTIONAL», и все значения опущены; или

b)    обозначение типа имело вид «SEQUENCE { }».

20.10    Для каждой последовательности «ПоименованныйТип», входящей в «Тип-Последовательность*, которая не отмечена как «DEFAULT» или «OPTIONAL», в записи значения типа «последовательность» должно быть включено некоторое значение этого поименованного типа, в порядке следования последовательностей «ПоименованныйТип».

Примечание. Использование послсдоватс.чьиостгй «Поименованный-Тип», не содержащих идентификатор, не запрещается, но в случае иепо.чьловани» DEFAULT» или «OPTIONAL» может привести к неоднозначным обозначениям.

21 ОБОЗНАЧЕНИЯ ДЛЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ ИЗ»

21.1    Обозначения для построения типа «последовательность из» (см. 3.23) из другого типа должны иметь вид «Тип-Последователь-ностьИз»:

Тин-ПоследовательностьИз : • = SEQUENCE OF Тип [

SEQUENCE

21.2    Обозначение «SEQUENCE» эквивалентно обозначению «SEQUENCE OF ANY* (см. раздел 27).

21.3    Все типы «последовательность из» имеют тег универсального класса 16.

I

36

Страница 42

ГОСТ р. ИСОУМЭК 8824-93=

Примечание Типы «последовательность» имеют юг же самый тег (см. 20.7).

21.4    Для задания значения типа «последовательность из» используют определяемое ниже обозначение «Значение-Последова> тельностьИз»:

Значение-ПоследовательностьИэ :: -*

{СписскЗначеннй} \ { }

С.мздчЗкачспий :: - Значение |

СлисокЗкачений, Значение • Обозначение «{ }» используют в тех случаях, когда в значении типа «последовательность из* нет ни одного значения-компонента.

21.5    Каждая последовательность «Значение», входящая в «Спи

сокЗначений», должна быть обозначением некоторого значения того «Типа», который задан определении типа «последовательность из»,    ,

Примечание. Порядку следования зт*х значений может соответствовать некоторый семантический смысл.

И ОБОЗНАЧЕНИЯ ДЛЯ ТИПА «МНОЖЕСТВО»

22.1    Обозначения для определения типа «множество» (см. 3.24) на основе других типов должны иметь вид «Тип-Множество»:

Тип-Множество ::= SET (СлисохТнпоз-Колмкмеитоа} !

SET { >

«СписохТипов-Компонентов» определен в 20.1.

22.2    «Тип» в четвертом варианте продукции «Тип-Компонент» (см. 20.1) должен быть типом «множество*. Использование варианта «COMPONENTS OF Тип» определяет включение в «Список-Типов-Компонентов» всех последовательностей «Тип-Компонент», имеющихся в типе «множество*.

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

22.3    Все «Типы-комяоненТы» в типе «множество» должны иметь разные теги (см. раздел 20).

^ 22.4 Для типов «множество» применимы формулировки

22.5    Все типы «множество» имеют тег универсального класса 17.

Примечание. Типы «множестоо вэ» имеют тот же самый тег (см. 23.3).

22.6    Порядку следования значеннй-компонентов в типе «множество» не придают никакого семантического значения.

22.7    Обозначения для определения значения типа «множество» должны иметь вид «Значение-Множество»:

Значение-Множество :: = {СписокЗначений-Компонентов} J {}

37

Страница 43

ГОСТ р н СО/М ЭК 8824—93

Последовательность «СписокЗначеннй-Компонентов» определена в 20.8

22.8 Вариант <{ }» в продукции «Значение-множество» может быть применен только о следующих случаях:

a)    все последовательности «Тип-Компонент» в продукции «Тип-Множество* заданы как DEFAULT» или «OPTIONAL», и все значения-компоненты опущены, или

b)    тип был задан последовательностью «SET{ >».

22 9 Для каждого «ПоименованногоТипа» в «Типе-Множестве», • который не был задан как «0RT10NAL» или «DEFAULT», в записи значения должна присутствовать соответствующая последовательность «ПонмснованноеЗначекие».

Примечания

1    «ПоимсиовавныеЗначеиня» могут следовать в произвольном порядке.

2    Использование последовательностей «ПоммеионамиыйТип», ь которых отсутствует идентификатор, не заалрешается, но может привести к неоднозначности

23 ОБОЗНАЧЕНИЯ ДЛЯ ТИПОВ «МНОЖЕСТВО ИЗ»    ,

23.1 Обозначения для определения типа «множество из» (см. 3.25) на основе другого типа должны иметь вид «Тип-Множество-Из»:

Тип-МножествоИз :: => SET OF Тип }

SET-

23.2- Обозначение «SET» эквивалентно обозначению «SET OF ANY» (см. 27).

23.3    Все тины «множество из» имеют тег универсального класса 17.    '

Примечание. Типы «множество» имеют тот же самый тег (см. 22.5)

23.4    Обозначения для определения значения типа «множество и::> должны иметь вид «Значение-МножествоИз»:

Значение МножествоИз :: = (СпиоокЗначений} | ( ) Последовательность «СписокЗначений» определена в 21.4

Обозначение «{ }» используют в том случае, когда значеКия-компоненты в значении-множестве отсутствуют.

23.5    Каждое «Значение» в «СпискеЗначений» должно быть обозначением некоторого значения «Типа», который используют в последовательности «Т ип-МножествоИз».

Примечания

1    Порядок следования значений-компонентов не имеет никакого семаиткче ского значения.

2    К правилам кодирования не предъявляется требования сохранения порядка следования этих значений.

Страница 44

ГОСТ Р НСО/М ЭК «*24-03

24 ОБОЗНАЧЕНИЯ ДЛЯ ВЫБОРОЧНЫХ ТИПОВ

24.1    Обозначения для определения выборочного типа (см. 3.27), исходя из имеющихся других типон. должны иметь вид «Выбором-ныйТип»:

ВыборочныйТип СН01СЕ{СписокТипон-Вариантов}

СписокТипов-Вариантов :: »

ПоимеиоваиныйТил    J

СписокТипов-Вариантов, ПомменованныйТкп

Примечания

1    Правила кодирочаиии обеспечивают идентичность способа кодирования выбранного значении выборочного тина способу кодирования такого же значения типа-варианта

2    Кодирование значений «ВыборочногоТииа» с единственным типом-вариантом «ПоименопаниыйТни» в «СпНСхсТнгюв-8арИ»нтоа» итотможно отличить от иодирования соответствующих значений в случае прямого задании «Типа», входящего и последовательность «ПоимсновапиыйТйя».

24.2    Все типы, входящие- в «СписокТипов-Вариантов». должны иметь различные тегн (см. раздел 26).

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

24.4    Если выборочный тип используют в таких конструкциях, где требованием настоящего стандарта является использование типов с различными тегамн (см 20.3. 22.3 и 21 2), то теги всех типов, определенных в «СпнскеТннов-Вариантов», должны отличаться от тегов других типов (см. раздел 26). Приведенные ниже примеры иллюстрируют это требование. Примеры I и 2 являются примерами правильного использования нотации. Пример 3 является примером неправильного использования нотации, поскольку теги типов d. f. а также с. и. совпадают.

ПРИМЕ Р Ы ] A::-CHOICE (b В

с NULL)

В : • = СН01СЕ {d |0| NULL, с flj NULL}

2 А :: «CHOICE {b В. с С)

В :: ^CHOICE {d f0] NULL e Il| NULL}

r.9-

Страница 45

ГОСТ Р ИСО/МЭК 8824-93

С :: *■ CHOICE

Шиит NULL}

ИЛЬНОЕ ОПИСАНИЕ)

А : : ^CHOICE {b В. с С}

В : : -CHOICE {d [01 NULL е [11 NULL)

С :: = CHOICE (f [0] NULL, g [l] NULL}

24.5    Все «Идентификаторы» (если они заданы) в последовательностях «ПоименованныйТип*. входящих в «СписокТипов-Ва-риантов». должны быть различными.

24.6    Если выборочный тип используют в таких конструкциях, где требованием настоящего стандарта является использование «ПоименованныхТнпов» с различными «Идентификаторами», то «Идентификаторы», бели они заданы, всех «ПоименованныхТипов» в «СпнскеТиповВариантов» должны отличаться от всех «Идентификаторов» других «ПоименовзнныхТипов» (входящих в конструкцию).

24.7    Обозначения, используемые для определения значения выборочного типа, определяются продукцией «ВыборочноеЗначенне»:

ВыборочноеЗначение:: *= ПоименованноеЗначение

24.8    Если «ПоименованноеЗначение» содержит «Идентификатор». то оно должно быть записью значения того типа в «Списке-Значении-Вариантов*. который имеет тот же «Идентификатор». Если «ПоименованноеЗначение» не содержит «Идентификатора», то оно должно быть записью значения одного из тех Т|)пов в «Спнс-'кеЗначений-Вариантов», которые не имеют «Идентификатора».

Примечание Пропуск идентификатора в «ПоимсиовэниомТипе» может привести к неоднозначное™

25 ОБОЗНАЧЕНИЯ ДЛЯ СЕЛЕКТИВНЫХ ТИПОВ

25.1 Поименованный тип в «СпискеТипов-Вариантов» «Выбо-рочиогоТииа» может быть задан с помощью обозначения «Селек-тивиыйТнп»:

СелективныйТип : : = Идентификатор <Тип где «Ткп» является обозначением, задающим «ВыборочныйТип», а «Идентификатор» является одним из «Идентификаторов» «По-нменованныхТипов» (входящих в «ВыборочныйТип»).

Страница 46

ГОСТ Р ИСО/ИЭК 8824—93

Примечание «СслективнмйТип» может использоваться как в качестве «ПоямеиоааннотоТнпа». и в лом случае «Идентификатор» используют при записи значения, так и в качестве «Типа» и «ПоимокованномТипе», и в этом случае сю «Идентификатор* при записи значения не используют.

25.2 Обозначения для записи значения селективного типа определяются продукцией «СелективноеЗначеиие»:

СелективноеЗначеиие :: в ПоименованноеЗначенне причем в «ПонменованноеЗначенне* входит идентификатор, присутствующий в соответствующей последовательности «Селектив-ныйТип», в том и только в том случае, когда «СелективныйТип» используют как «ПоименованныАТип».

26 ОБОЗНАЧЕНИЯ ДЛЯ ТЕГИРОВАННЫХ ТИПОВ

Тегированный тип (см. 3.26) является новым типом, изоморфным исходному типу, но имеющим другой тег. Мри всех способах кодирования обеспечивается отличие значения нового типа от значения исходного типа. Тегированный тип используют главным образом в тех случаях, когда требованием настоящего стандарта является использование типов с различными тегами (см. 20.3, 22.3, 24.2. 24.4 и 27.6).

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

26.1    Обозначения для тегированного типа должны иметь вид

«ТегироваиныйТип» :

ТегированныйТпп - Тег Тип    J

тег IMPLICIT Ти" |

Тег EXPLICIT Тип

Тег ;; = Г Класс МомерВКлассе]

НомерВКлассс :: = Число J РлротеленноеЗначение

Класс -- UNIVERSAL \

APPLICATION f PRIVATE i пусто

20.2    «ОпределенносЗнячснио - должно быть ссылкой на неотрицательное значение целочисленного типа или производного от целочисленного помеченного типа.

26.3    Новый тип изоморфен исходному типу, но имеет тег с классом, заданным последовательностью «Класс* и номер, задан-.

< ный последовательностью «НомерВ Классе», если для последовательности «Класс» был выбран вариант, отличный от «пусто»; если. же.был выбран вариант «пусто*, то тег относится к конто-.ст-

Страница 47

ГОСТ Р ИСО/МЭК 8824-93

но-зависимому классу и имеет номер, заданный последовательностью «НомерВКлассе»

26.4    Для типов, определяемых вне рамок настоящего стандарта, «Класс» не должен быть универсальным классом («UNIVERSAL»).

Примечание. Использование тегов универсального класса периодически согласовывается между ИСО и МККТТ.

26.5    Если «Класс» тега является прикладным («APPLICATION»), то тот же самый «Тег» не может быть использован пои торно в том же самом модуле.

266 Если «Класс» тега является пользовательским («PRIVATE»), то тег доступен для использования по правилам, устанавливаемых организациями-иользователями.

26.7    Конструкция тегирования задает явное тегирование, если выполняется одно из следующих условий.

a)    используется вариант «Тег EXPLICIT Тип»;

b)    используется вариант «Тег Тип» и значение конструкции «ТегиПоУмолчанию» для этого модуля — «EXPLICIT TAGS».

c)    используется вариант «Тег Тип» и значение конструкции «ТегиПоУмолчанию» для этого модуля - «IMPLICIT TAuS*. но тип. определенный конструкцией «Тип», — выборочный или неопределенный.

26.8    Если «Классом» тега является «пусто», то на использование «Тега» не накладывается никаких ограничений, кроме тех, которые вызваны требонаниями различия тегов, сформулированными в 20.3, 22.3 и 24.2.

26.9    Вариант «IMPLICIT» является обозначением того, что для тех правил кодирования, которые обеспечивают эту возможность. явное указание тега, который имел исходный «Тип», не требуется при передаче данных.

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

26.10    Вариант «IMPLICIT» не должен использоваться, если тип. определенный последовательностью «Тин», является выборочным («CHOICE») или произвольным типом («ANY»).

26.11    Обозначения для определения значения тегированного типа должны иметь вид «ТегированноеЗначенне»:

ТсгированноеЗначснне :: •= Значение где «Значение» является обозначением значения того типа, кото-

Г’


42

Страница 48

ГОСТ Р ИСО.'МЭК 8824-95

рый был задан последовательностью «Тип» в продукции «Тегиро-нанныАТип».

Примечание Отметим, что в этом обозначении отсутствует «Тег»

27 оьознлчкния для произвольного ТИПА

27.1    Обозначение для произвольного типа (см. 3.29) определяется продукцией «ПроизвольныйТип»:

Произвольный Тип : . = ANY j

ANY DEFINED BY идентификатор

11 (» и м е ч а н и с Использование «ANY» приводит к неполной спецификации, если не сопровождается дополнительной спецификацией. Конструкция «ANY DEFINED BY* предоставляет возможность задания типа, подставляемого пмес то «ANY», ео время обмена информацией, а также указывать на его семашику. Неля выполняются описанные ниже правила использования этого типа, то он мо Ж1Ч обеспечить полную спецификацию Использование «ANY* без «DEFINED BY* № рекомендуется

27.2    Вариант «DEFINED BY* должен использоваться только в том случае, когда произвольный тип, или тип. полученный из него тегированием, является типом-компонентом типа «последовательность* или «множество» (содержащего произвольный тип).

27.3    «Идентификатор» в варианте «DEFINED BY» должен также присутствовать в конструкции «ПоименовзнныйТип», которая задаст другой, обязательно присутствующий (то ссть заданный не как «OPTIONAL») тип-компонент содержащего типа. «Понмсно-ваиныйТип» должен относиться либо к целочисленному типу, либо к идентификатору объекта.

27.4    Если «ПоименовзнныйТип* является целочисленным, перечислительным типом или типом «идентификатор объекта», либо типом, полученным из вышеупомянутых типов тегированием или образованием подтипа, то документ, использующий обозначение «DEFINED BY», должен содержать или явно ссылаться на единым список, в котором задано, какой тип ACH.I должен быть подставлен вместо «ANY» для каждого разрешенного значения целочисленного типа. Этот список должен быть одним и тем же для всех случаев обмена информацией, затрагивающих содержащий тип.

27.5    Если «ПоименовзнныйТип» является типом «идентификатор объекта» или типом, полученным из него тегированием, то возникает необходимость в справочнике, «регистре», который для каждого выделенного значения «идентификатор объекта» связывал с ним единственный тип АСН.1 (возможно, выборочный тип), который следует подстзвить вместо типа «ANY*.

Страница 49

ГОСТ Р ИСО'МЭК 8824-93

Примечания

1    Возможно наличие произвольною количества регистров, связывающих значение-идентификатор Объекта с типом ACH.I для этих целей.

2    Регистрацию значений для идентификации типов при взаимосвязи открытых систем предполагается осуществить в стандартах ИСО и рекомендациях МККТТ, в которых используют эти обозначения. В случаях, когда требуется специальная международная регистрационная служба для некоторого случая ис-пользования «ANY DEFINED BY*, это должно быть явно указано в документе, использующем эти обозначения.

3    Основное различие между записью значений для идентификации типов в виде целого числа и идентификатора объекта заключается и том, что число задаст один законченный список, полностью содержащийся в стандарте, использующей >то обозначение, тогда как идентификатор объекта допускает использование открытого списка типоа, определяемого регистрационной службой, выделяющей идентификаторы объектов.

’ 27.6 Произвольный тип имеет неопределенный тег; он не должен использоваться в случаях, где требованием настоящего стандарта является использование типов с различными тегами (см 20.3, 22.3, 24.3 и 24.4).

27.7 Запись значения произвольного типа должна осуществляться по правилам АСН.1 И определяется следующей продукцией * П ро извольноеЗна чен не».

ПроизвольноеЗначение :: ** Тип Значение где «Тип» обозначение некоторого типа, а «Значение* обозначение для записи значения этого типа.

ОБОЗНАЧЕНИЯ ДЛЯ ТИПА «ИДЕНТИФИКАТОР ОБЪЕКТА»

28.1    Ссылка на тип «идентификатор объекта» (см. 3.33) должна иметь вид «Тнп-ИдентификаторОбъекта»:

Тип-ИдентнфнкаторОбъекта ::= OBJECT IDENTIFIER

28.2    Этот тип имеет тег универсального класса 6.

28.3    Обозначения для записи идентификатора объекта должны иметь иид «Значение-ИдентификаторОбъекта»:

Значение ИдентнфикаторОбъекта :: —

1СпнеокКомпонечтовИдОбъекта} \

{ОпределенноеЗначение СпнсокКомпонентовИдОбъекта} СпнсокКомпонентовИдОбъекта :: =

КомлоненгИдОбъскта |

КомпонентИдОбъекта СпнсокКомпонентовИдОбъекта КомпоиеитИдОбъектп :: — ИмсннаяФорма \

ЧнсловаяФорма ;

СмешаннаяФорма Именная Форма . : - Идентификатор Числовая Форма : : = Число | ОпределеннозЗначсние Смешанная Форма ;: ■= Идентификатор(ЧисловаяФорма)

<4

Страница 50

ГОСТ Р ИСО’МЭК 83-24-93

28.4    Определенное значение в продукции «ЧисловаяФорма» должно быть ссылкой на значение целочисленного или помеченного типа, производного от целочисленного

28.5    Определенное значение в продукции «Значеннс-Идентнфи-каторОбъекта» должно быть значением целочисленного или тегированного типа, производного от целочисленного.

28.6    «ИменнаяФормз» используется только для тех компонентов идентификатора объекта, численные значения которых определены в приложениях В—D к настоящему стандарту, и должна совпадать с одним hj идентификаторов, определенных в этих приложениях

28.7    «Число* в продукции «ЧисловаяФорма* должно быть числовым значением, присвоенным компоненту идентификатора объекта.

28.8    «Идентификатор» в продукции «СмешаннаяФорма» задается в случаях, когда данному компоненту идентификатора объекта присвоено целочисленное значение.

28.9    Семантическое значение идентификаторов задается деревом идентификаторов объектов Дерево идентификаторов объектен является графом вида «дерево с корнем», причем чореч, дерева соответствует настоящему стандарту, вершины соответствуют службам — источникам идентификации, осуществляющим выделение ребер, исходящих из данной вершины." Каждому ребру дерева ставится в соответствие компонент идентификатора объекта, являющийся целочисленным значением. Каждому информационно»!^. объекту, подлежащему идентификации, соответствует в точности одна вершина (обычно -- внеяшая вершина) и отсутствуют Другие информационные объекты, которым назначена та же вершина. Таким образом, информационный объект однозначно и непротиворечиво идентифицируется последовательностью числовых значений {компонентов идентификаторов объектов), которые соответствуют ребрам в пути от корня графа до вершины, соответствующей данному информационному объекту.

Я р и м <• ч с н in- Значении вила «идентификатор объекта* состоят, по крайней мере, из двух компонентов, как определяется в приложениях В—®.

28.10    Значение вида «идентификатор объекта* представляет из себя упорядоченный синеок значений вида «компонент идентификатора обьекта». Начиная с корня дерева идентификаторов объектов, каждое значение вида «компонент идентификатора объекта» соответствует ребру этого дерева. Последнее из этих значений идентифицирует ребро, ведущее к вершине, соответствующей информационному объекту. Это — тот самый информационный объект, который идентифицируется данным значением вида «идеи-

45

Страница 51

ГОСТ Р И СО/М ЭК 8824-93

тифнкатор объекта». Существенной частью значения вида — «компонент идентификатора объекта» является «именная форма» или «числовая форма», к которой сводится «именная форма». «Числовая форма» («NumherForm») представляет собой численное значение компонента идентификатора объекта.

Примечание. Как правило, информационным объект представляет собой класс информации (например, формат файла), з не конкретный представитель «того класса (например, конкретный файл). Таким образом, каждая •ерши на дерева задает некоторый информационный класс, (определяемый некоторым описанном, на которое дастся ссылка), а не какой-то объем информации, относя-и № Ас к к -«том* классу.

28.11 В случаях, когда «Значсннс-ИдентификаторОб'ЪСкта» включает «ОпределенноеЗначенне», список компонентов идентификатора объекта, задаваемый этим «ОпредсленнымЗначением», ставится непосредственно перед компонентами, явно присутствующими в значении.

Примеры

С учетом присвоения идентификаторов, описанного в приложении В.значения:

{iso standard 8571 pci(l)}

и

{ISO 8571 1}

идентифицируют один и гот же объект протокольную управляющую информацию («pci»), определенную в ИСО 8571.

С учетом следующего дополнительного определения

ftam OBJECT IDENTIFIER :: =

■ {iso standard 8571}

значение

{ftam pci (I)} также эквивалентно значениям, приведенным выше.

Примечание Если в каком-либо международном стандарте, рекомендации МкКТТ или другом документе содержится присвоение течений типа «идентификатор объекта* («OBJECT IDENTIFIER»), то рекомендуется снабжать этот документ приложением или дополнением, содержащим перечень всех содержащихся в нем присвооний Желательно также, чтобы сл>жбы, присваивающие значения типа «идентификатор объекта» («OBJECT IDENTIFIER») информационным объектам присваивали им также значения типа «описатель объекта».

2» ОБОЗНАЧЕНИЯ ДЛЯ ТИПОВ «СТРОКА ЗНАКОВ»

29.1 Обозначения для задания ссылки на тин «строка знаков» (см. 3.12 и раздел 31) должны иметь вид:

Тип-СтрокаЗнаков :: = СсылкаНаТин

г


Страница 52

ГОСТ Р ИСО/МЭК 8824—93

где «СсылкаНаТип» — одно из имен типов «строка знаков», перечисленных в разделе 31.

29.2    Теги всех типов «строка знаков» определены в разделе 31.

29.3    Обозначения для записи значения «строка знаков» должны иметь вид:

Значенж>-СтрокаЗнаков ::чс строка

Знаки, которые могут присутствовать в «строке знаков» («с-строке»), определятся тнпем, :< которому относится строка..

30 ОБОЗНАЧЕНИЯ ДЛЯ ТИПО^. ОПРЕДЕЛЕННЫХ В РАЗДЕЛАХ 32-35

30.1    Обозначения для задания ссылки на один нз тниов. определенных в разделах 32 -35, должны быть следующими:

ОбщеупотребнтельныйТнп :: «СсылкаНаТнп где «СсылкаНаТип* — одна из ссылок на тип. определенных в разделах 32—35 с помощью нотации ACH.I.

30.2    Теги для каждого из общеупотребительных типов определены в разделах 32 -35.

30.3    Обозначения для записи значения общеупотребительного типа определяются в разделах 32—35.

31 ОПРЕДЕЛЕНИЕ ТИПОВ «СТРОКА ЗНАКОВ»

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

31.1    Для определения типа («строка знаков») необходимо задать следующее:

a)    тег. присвоенный типу;    '

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

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

Имя из 1») может использоваться как <СсылкаНаТип» при задании типа с помощью нотации ACH.I (см. раздел 29).

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

47

Страница 53

ГОСТ Р ИСО/МЭК М24—93

ков). В случае необходимости строка таблицы сопровождается примечанием. В случаях, когда для типа определено имя-синоним, оно приводится в скобках.

Примечание. Тег. назначенный типу «строка знаков», однозначно идентифицирует этот тип. Отметим, однако, что и случаях, когда с помощью ACH.I определяются новые типи, исходя из имеющегося типа «строка знаков» (о особенности. с использованном ключевого слога «IMPLICIT»), может оказаться невозможным распознавание этих типов без знания нх определений.

31.3 В таблице 4 перечислены знаки, которые могут присутствовать в значении типа, имеющего имя NumericStrinK (числовая строка).

Т а блица 4 — Tun NumericString (числовая строка)

Наиюмюпииие

И шС.щжемн-

Цифры

Пробел

0. 1. ...9 (пробел)

31.4 В таблице 5 перечислены знаки, которые могут присутствовать п значении типа, имеющего имя PrintableString (печатная строка).

Т а б Л и и а 5 - Тип PHnlebleSlring (печатная строка)

Лпичгноааи-ш

I! ipOiMih^iie

Прописные буква

а, в . г

Строчные буквы

а. Ь, . . х

Цифры

0.1, .9

Пробел

(пробел)

Апостроф

Левая скобка

f

Правая скобка

)

Знак мюс

+

Занятая

Дсфис

--

Точка

Косач черта

/

Двоеточие

Знак равенства

с-

Вопросительный знак

Ъ

31.5 Обозначения для всех значений типов «строка знаков» должны иметь вид «с-строка».

Страница 54

ГОСТ Р ИСО/МЭК 8824-9:*

11 р'и ис'чанис Это обозначение может быть использовано только в том случаи, когда используют средства отображения, допускающие изображение эпакоо. составляющих данное значение. Обозначения для записи значения в других случаях не определены.

31.6 Во всех случаях набор допустимых знаком может ограничиваться комментарием, но не может быть расширен.

Таблниа 6 — Список типов «строка знаков*

Пи* для мылки

си mn

Ном»1> тега УИ«ВвПС4ЧЪ-МОГО Ь.1*К*

P«rKrtrau»'Mitiue tiouan (си. И СО М751 или мох си 1нб.1ииы. оидеас.’ямнцсй IlllfiOP 1КИКО»

Ппнмечлшм

NumeHcString

18

Таблица 4

(1)

PrlnlebleString

10

Таблица 5

<1)

TeklexString (T6I String)

•;и

87. 102. 103. 106. 107 t-ПРОБЕЛ+ЗЛБОП

(2)

VidcolcxStrinR

21

1. 72. 73. 102, 108. 128. 129 +ПРОБЕЛ +ЗАБОИ

(3)

VisibleSlring

<JSOG4GStrinR)

2+ПРОБЕЛ

lASString

22

», 2+ПРОБЕЛ+ЗАБОИ

Graphlc-String

25

Все наборы G 4-ПРОБЕЛ

GeneralStrinfj

27

Все наборы G и С +П РОБЕЛ+3 А БОЙ

Примечания

1    Для данною типа такие характеристики, как шрифт, размер, цвет, яркость и т. п. несущественны.

2    Для случаев, соответствующих этим регистрационным номерам, правила использования определяются рекомендацией AIKKTT T.6I.

3    Для случаев, соответствующих этим регистрационным номерам, обеспечиваются функциональные возможности, определяемые рекомендациями

MKKTT T.IOO и T.J01,

32 ОБЩАЯ ФОРМА ЗАПИСИ ВРЕМЕНИ

32.1    Для ссылок на этот тип должно использоваться имя GeneralizedTime.

32.2    Этот тин состоит из значений, содержащих:

Страница 55

ГОСТ Р ИСО1,НЭК 8824—93

a)    календарную дату в форме, определенной ИСО 2014 («Записи календарной даты в числовом представлении»);

b)    время суток с любой точностью, предусмотренной в разделе 2 ИСО 3307 («Формы представления времени суток»);

c)    сдвиг местного времени относительно всемирного времени в виде, описанном в ИСО 403) («Представление разности местного времени по отношению ко всемирному времени»)

32.3 Описываемый тип может быть определен с помощью нотации АСН.1 следующим образом:

GeneraiizedTime :=

[UNIVERSAL 24] IMPLICIT VisibleString где значения «отображаемой строки» («VisibleString») ограничиваются строками знаков, удовлетворяющих одному из следующих условий:

a)    «отображаемая строка» («VisibleString») является строкой, представляющей календарную дату в соответствии с правилами, определенными в ИСО 2014 с четырехзначной записью годэ, двузначной записью месяца и двузначной 'записью числа без разделителей. за которой следует строка, представляющая время суток, как предписано ИСО 3307, не содержащая других разделителей, кроме десятичной точки или десятичной запятой ( как предусматривается в 2.3—2.5 ИСО 3307) без оконечного знака Z (как предусмотрено в разделе 3 ИСО 3307) или

b)    «отображаемая строка» является строкой знаков, определенной в а), за которой следует прописная буква 2. или

c)    «отображаемая строка» является строкой знаков, определен ной в а), за которой следует строка, определяющая сдвиг местного времени относительно всемирного времени, соответствующая требованиям ИСО 4031. без разделителей.

В случае а) запись времени обозначает местное время. В случае

b)    запись времени представляет всемирное время (UTC). В случае

c)    часть строки, описанная в а), представляет местное время (Л), а сдвиг местного времени относительно всемирного времени (/2) позволяет вычислить всемирное время (UTC) по следующей формуле:

время UTC равно Л—/*

Примеры

Случай а)

Значение 19851106210627.3    1

задает местное время 9 ч вечера 6 мин 27,3 с 6 ноября 1985 г.

Случай Ь)

Значение 19851106210627.3Z задает всемирное время (UTC), в остальном заданное как в п. а).

Страница 56

ГОСТ Р ИСО/МЭК М24—*3

Случай с)

Значение 19851106210627.3—0500 задает местное время как в а) с указанием сдвига местного времени относительно всемирного времени (местное время отстает на 5 ч)

32.4    Тег этого типа должен соответствовать определению типа в 32.3.

32.5    Обозначения для записи значения должны быть обозначениями для записи значения типа, «отображаемая строка», определенного в 32.3.

33 ВСЕМИРНОЕ ВРЕМЯ

33.1    Для ссылки на пот тип должно использоваться имя UTCTime

33.2    Этот тип состоит из значений, содержащих:

а) календарную дату;

1>) время с точностью до I мин или I с.;

и

с) (в качестве необязательной возможности) сдвиг местного времени относительно всемирного времени.

33.3    Этот тип может быть определен с помощью нотации ACH.I следующим образом:

UTCTime :: -

[UNIVERSAL 23] IMPLICIT VisibleString где значения «отображаемой строки» (VisibleString») ограничены строками знаков, состоящими из следующих частей, следующих друг за другом:

a)    шести цифр YYMMDD, где YY — две последние цифры номера года по грегорианскому календарю, ММ — номер месяца (ян* варь — 01) н DD — число данного месяца (от 01 до 31);

b)

1)    четырех цифр hhmm, где hh — обозначение часа (от 01 до 23) и mm — обозначение минут (от 00 до 59).

2)    шести цифр hhmmss. где hh и mm — как в 1). a ss — обозначение секунд;

c)

1)    знака Z    ^

2)    одного из знаков -4- или —, за которым следует последовательность hhmm, где hh — часы, a mm — минуты.

Разные варианты в Ь) обеспечивают разную точность при задании времени.

Страница 57

ГОСТ Р ИСО МЭК Ш4—*3

В варианте с) 1) задастся всемирное время. В варианте с)2) задается местное время (f,) (часть обозначения, определяемая а), Ь) и сдвиг местного времени относительно всемирного времени (Ц) (часть обозначения, определяемая в с)2), при этом всемирное время (IJTC) может быть вычислено следующим образом:

время UTC равно t,—/}

Пример — Пусть местное время — 6ч после полудня 2 января 1982 г., а всемирное время — 12 ч (полдень) 2 января, тогда время может быть записано в виде:

UTCTime «820I021200Z» или

UTCTime «8201020700-0500»

33.4    'Гег этого типа должен соответствовать определению типа в 33.3.

33.5    Обозначения.дли записи значения этого типа должны быть отображениями для записи зипа «отображаемая строка», определенного в 33.3.

34 ВНЕШНИЙ ТИП

34.1    Обозначение внешнего типа (см. 3 30) должно иметь вид «ВнешннйТип»:

ВнешнийТип :: = EXTERNAL

34.2    Этот тип состоит из значений, включающих следующие составные части:

a)    кодовое представление какого-то одного значения данных, которое может быть (но не обязательно должно быть) значением какого-то одного определенного в АСН.1 типа данных,

b)    идентифицирующую информацию, устанавливающую семантику значения и правила кодирования и

c)    (в качество необязательной информации) описатель обьсктн. содержащий описание данного информационного объекта.

Необязательный описатель объекта может задаваться только в том случае, если это явно разрешается в комментарии, описывающем использование обозначения EXTERNAL.

34.3    Тип EXTERNAL допускает включение в него любых значе-. ний данных из некоторого' идентифицируемого множества значений.

Примечания    .

1 Опрслел-ние этого множества значений данных, их семантики, присвоение идентификаторов объектов и описателей объектов. а также доведение этой информации до всех обменивающихся информацией сторон называется регистрацией абстрактного синтаксиса. Эта совокупность действий может быть иы>)0лиеиа любоА службой, которая имеет право присваивать значения идентификаторов ибт-екгоп (OBJECT IDENTIFIER), как описано п приложениях'B-D.

52

Страница 58

ГОСТ Р И СО/М ЭК 8*24-93

2 Множество значений дав а их, зарегистрированных в качестве абстрактного синтаксиса (вместе с соответствующими правилами кодирования) считают правильно сформированным только в том случае, если кодовое представление каждого значения данных обладает свойством самоидснтифицирусмостн в рвмкал множества кодовых представлений значений данных. Если для определения абстрактною синтаксиса используют нотацию ACH.I. то лля обеспечения само-иисигифицируемсстн кодового представления используют присвоение тегов, В ■случаях, когда абстрактный синтаксис не является правильно сформированным, использование коммуникационного канала либо контекстно• за в«си мо. либо вс дет к неоднозначности

34.4    Внешний вид (EXTERNAL) может бить определен с помощью нотации ACH.I следующим образом:

EXTERNAL :: = [UNIVERSAL 8] IMPLICIT SEQUENCE {direct-reference OBJECT IDENTIFIER OPTIONAL, indirect-reference INTEGER OPTIONAL, data-value-descriptor Object Descriptor OPTIONAL, encoding CHOICE {single-ASN I-type |0] ANY, octet-aligned [I] IMPLICIT OCTET STRING, arbitrary |2) IMPLICIT BIT STRING}}

34.5    Когда для данного значения внешнего типа («EXTERNAL») не используют диалог по установлению правил кодировании на уровне представления, а используют предварительную договоренность относительно синтаксиса передачи, то в значении должен присутствовать идентификатор объекта для прямой ссылки («direct-reference OBJECT IDENTIFIER»). В этом случае идентификация множества значений осуществляется посредством идентификатора объекта (являющегося прямой ссылкой на абст-

.рактнын синтаксис) и подставляемого в поле «идентификатор объекта дли прямой ссылки» («direct reference OBJECT IDENTIFIER») В этом случае правила кодирования также определяются с использованием осуществленной ранее регистрации абстрактного синтаксиса и-целочисленная косвенная ссылка («indirect-reference INTEGER») не используется.

34.6    Когда используют диалог по установлению правил кодирования на уровне представления, для данного значения внешнего типа («EXTERNAL»), то должна быть задана «целочисленная косвенная ссылка» («indirect-reference INTEGER»). В этом случае идентификатором множества значений данных является целое число. являющееся ссылкой на конкретное использование абстрактного синтаксиса. Это число называется идентификатором контекста представления н подставляется в поле «целочисленная косвенная ссылка» («indirect-reference INTEGER»). Если диалог по установлению правил кодирования на уровне представления завершен, то идентификатор контекста представления также идентифицирует

S3

Страница 59

ГОСТ Р ИСО'МЭК «824—93

правила кодирования (синтаксис передачи), применяемые к данному значению данных, при этом «идентификатор объекта для прямой ссылки* {«direct reference OBJECT IDENTIFIER») не задается. Если диалог по установлению правил кодирования на уровне представления не завершен, то значение идентификатора объекта также необходимо для идентификации используемых в данный момент правил кодирования (сннтзкснса передачи). При использовании диалога по установлению правил кодирования допустимость (или необходимость) элемента «идентификатор объекта для прямой ссылки» («direct reference OBJECT IDENTIFIER») должна быть указана в комментарии, описывающем использование обозначения «EXTERNAL»), если же соответствующее указание отсутствует, то этот идентификатор не должен использоваться.

Примечания    k

1    Следствием из 34.5 и 34.6 является требование обязательного присутствия по крайней мере одною из вариантов «прямая ссылка» или «косвенная ссылка»

2    Если дин/юг по установлению параметров на уровне представления ис-полыуетси, но не завершен, то используются обе ссылки.

МЛ Если рассматриваемое значение данных является значением какого-либо одного типа данных, определенного с помощью ACH.I, и если правила кодирования для этого значения данных те же, что и для всего внешнего типа («EXTERNAL»), то в конкретной реализации на стороне отправителя может быть использован любой из вариантов элемента «кодовое представление» («encoding»):

sirfgle-ASN 1 -type octet aligned arbitrary

34.8 Если кодовое представление данных, использующее правила кодирования, установленные в результате предварительной договоренности или в результате диалога по установлению параметров, имеет целое число октетов, то в конкретной реализации на стороне отправителя может быть использован любой из следующих вариантов элемента «кодовое представление» («encoding»): octet-aligned arbitrary

Примечание. Если значение данных является последовательностью.значений, относящихся к различным типам ACH.I, н правила кодирования предписывают простую постановку друг за другом строк октегоо. полученных применением базовых правил кодирования к каждому из значений разных типов, то такое значение относится к категории, описываемой в данном пункте; » ме к *aie-тории, описанной в 34.7.

54

Страница 60

ГОСТ Р ИСОуМЭК М24-95

34.9    Если кодовое представление значения данных, использующее правила кодирования, установленные в результате предварительной договоренности или в результате диалога по установлению параметров, содержит не целое число октетов, то должен использоваться следующий вариант элемента «кодовое представление* («encoding»):

arbitrary

34.10    Если для элемента «кодовое представление» («encoding*) выбран вариант «единственный тип АСН I» («single-ASNl-type»). то вместо «ANY* должен быть подставлен тип значения, подлежащего кодированию.

Примечание. Множество значений, которые могут встретнтм:* и «го* случае, определяются осуществленной ранее регистрацией значения вида «идентификатор объекта», задаваемого «примой ссылкой» («dircct reference») и/или целочисленного значения, задаваемого «косвенной ссылкой» («indirect reference»)

34.11    Если для элемента «кодовое представление* («encoding») выбран вариант «октетновыравненное» («octet-aligned»), то значение данных должно быть закодировано в соответствии с синтаксисом передачи, установленным в результате предварительной договоренности или диалога но установлению параметров, и полученные в результате октеты должны составлять значение — строку октетов.

34.12    Если для элемента «кодовое представление» («encoding») был выбран вариант «произвольное» («arbitrary»), то значение данных должно быть закодировано в соответствии с синтаксисом передачи, установленным в результате предварительной договоренности или диалога по установлению правил кодирования, а результат должен быть значением — строкой бит.

34.13    Тег этого типа должен соответствовать определению типа в 34.4.

34.14    Обозначения для записи значения должны быть обозначениями для записи значения типа, определенного в 34 4.

35 ТИП «ОПИСАТЕЛЬ ОБЪЕКТА»

35.1    Ссылку на этот тип осуществляют с помощью имени

ObjectDescriptor.

35.2    Этот тип составляют тексты, ориентированные на восприятие человеком и предназначенные для описания информационных объектов. Текст, являющийся значением данного типа, не обяэа тельно должен идентифицировать информационный объект, но предполагается, что использование одного и того же текста для описания разных информационных объектов маловероятно.

55

Страница 61

ГОСТ Р ИСО'МЭК «**24-93

Примечание. Желательно, чтобы значения типа «описатель объекта» (*ObjectDe$cr!p<or>) присваивались информационным оОъектзм теми же службами. которые присваивают информационным объектам .течения типа «идентификатор объекта» {«OBJECT IDENTIFIER»).

35.3    Этот тип может быть определен с помощью нотации ACH.I следующим образом:

ObjeetDescriptor :: *

(UNIVERSAL 7] IMPLICIT GrapbicString «Графическая строка* («GraphicString») содержит текст, описывающий информационный объект.

35.4    Тег атого типа должен соответствовать определению типа в 35.3.

35.5    Обозначения для записи значения должны быть обозначениями для записи значения типа, определенного и п. 37.3.

36 ОБОЗНАЧЕНИЯ ДЛЯ ПОДТИПОВ

36.1    Подтип определяется с помощью обозначения порождающего типа, за которым следует спецификация требуемого подтипа. Обозначения для спецификации подтипа определяются через обоз-качения подмножеств значений подтипа. Множество значений подтипа определяется в соответствии с 36.7 взятием теоретнко-множественного объединения подмножеств значений подтипа.

36.2    Не следует использовать обозначения подтипа таким образом, при котором порождается подтип, не содержащий ни одного значения.

36.3    Обозначения для подтипа должны иметь вид:

Подтип :: =

ПорождяющийТкп СпрцификацияПодтипа J . SET ОграииченнеРазмсра OF Tirn    |

SEQUENCE ОграничекнеРазмера OF Тип

ПорождающийТии :: -= Тип

36.4    В случаях, когда обозначение «СпецнфикацияПодтнпа» следует за обозначением «СелективныйТип». порождающим типом является «СелективныйТип», а не «Тин» в обозначении «Сс-лективныйТип».

36.5    В случаях, когда обозначение «СлецификацяяПодтипа» следует за обозначением типа «множество из» или «последовательность из», оно относится к «Типу» в обозначении «множество из» или «последовательность из», а не к самому типу «множество из» или «последовательность из».

Примечание. Обозначения для частных случаев, имеющие вид «SET Ограничение Размера OF Твя» и «SEQUENCE ОграничсниеРаэмера OF Тип» обеспечивают альтернативные (более легко воспринимаемые) конструкции л ля

56

Страница 62

ГОСТ Р И СО/М эк «Й4-83

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

36.6    Обозначение для спецификации подтипа должно иметь вид «СпсцифнкацияПодтнпа»:

СпецификацияПодтипа :: =

(ПодмножеетвоЗначенийПодтипа СписокПодмножествЗначе-нийПодтниа)

СписокПодмножествЗначенийПодтипа :: «

«•>

ПодмкожествоЗначенийПодтнна СнисокПодмножествЗначенийПодтнпа | пусто

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

368 Предусмотрено несколько различных форм обозначения «ПодмножеетвоЗначенийПодтипа»., Они перечислены нни*е. а их синтаксис и семантика определены в разделе 37. Как указано в разделе 37 и проиллюстрировано в таблице 7, некоторые виды обозначений применимы лишь к некоторым порождающим типам.

ПодмножеетвоЗначенийПодтипа :: =

ОдноЗначенне J    ,

Вложенный Подтип j ДиалазонЗначеннй |

РазрешенныйАлфаиит ОграниченнеРазмера J ОграннчснияВнутреннихТипов

37 ПОДМНОЖЕСТВА ЗНАЧЕНИЙ ПОДТИПА

37.1    Одно значение

37.1.1    Обозначение «одно значение* должно иметь вид

ОдноЗначенне :: - Значение

где «Значение» — обозначение значения порождающего типа.

37.1.2    Подмножество вида «ОдноЗначенис» состоит из одного значения порождающего типа, заданного «Значением». Это обозначение может быть применено ко всем порождающим типам.

37.2    Вложенный подтип

37.2.1    Обозначения «ВложенныйПодтип» должны иметь вид:

ВложенныйПодтип :: = INCLUDES Тип

37.2.2    Значения, задаваемые обозначением «ВложеиныйПод-

57

Страница 63

I ОСТ P ИСО/МЭК 8824—93

тми», — это все значения, входящие в «Тип», который сам должен быть подтипом порождающего типа. Это обозначение может быть применено ко всем порождающим типам.

37.3 Диапазон значений

37.3.1 Обозначение «ДнапазонЗначений» должно иметь вид: ДиапазонЗначеннй :: =

НижняяГраница .. Верхняя Граница

Таблица 7— Применимость способов образования подмножеств значений подтипов

Тип или получении* Ж1 tKro т«гмро»йиясм

Одж»

>««•

чеяи*

жеж

мин

ООЛ7МП

Дмапа it* >в»чений

Оголи »-»«н«е DtMttO*

Or тип ччиве алфавита

Ви»т

ргияма

ТИПЫ

Булевский

да

да

яст

нет

нет

нет

Целочисленным

ла

да

ла

нет

нет

нет

Перечислительный

да

да

ист

нет

нет

ист

Действительное число

ла

да

ла

нет

нет

ист

Идентификатор

объекте

да

да

КТ

нет

ист

ист

Строка бит

ля

да

нет

да

нет

нет

Строка октетов

да

да

нет

да

нет

пет

Типы «строка знаков»

да

л а

яст

ла

да

нет

Последовательность

ла

ДИ

нет

нет

иг»

да

Последовательность из

да

ла

мет

ла

нот

>

и

.Множество

да

да

нет

нет

нет

ла

Множество hj

да

да

ист

да

ист

да

Ироитиолмшй

ла

да

ист

нет

ист

нет

Выборочный

да

да

нет

ИСТ

пет.

да

37.3.2 Множество значений, задаваемое «ДиапазономЗначе-ний*. состоит из всех значений, заключенных в диапазоне, заданном числовыми значениями границ диапазона. Это обозначение может применяться только для целочисленных типов, типов «действительное число», а также типов, полученных из них тегированием или взятием подтипа.

Примечание При образовании подтипов «PLUS-INF1NITY» («плюс бесконечность») превышает все значений «ДействнтельноеЧисло», a «MINUS-

Я

Страница 64

ГОСТ Р ИСО,МЭК 8Я24-»

INFINITY» («минус бесконечности») меммие все* значений «Действитсдьное-Чнсло».

37.3.3    Граница диапазона может быть замкнутой (в этом случае граница диапазона входит в множество значений) или открытой (в. этом случае граница диапазона не входит в множество значений). Бели граница диапазона открытая, то обозначение нижней нлн верхней границы включает в себя знак «меньше» («<>)•

НижняяГраница :: •

НижнееГраничноеЗначенис | НнжнееГраничносЗначенис < ВерхняяГраница : : =

ВерхнееГраннчносЗначенис    < ВерхнееГраннчноеЗначение

37.3.4    Граница диапазона может также быть не задана, при этом диапазон продолжается в данном направлении до границы порождающего типа:

Нижнее! раничноеЗначенне :: = Значение | Ml N ВерхнесГраничносЗначение :: = Значение \ МАХ

37.4    Ограничение размера

37.4.1    Обозначение «ограничение размера» должно иметь вид: ОграничениеРазмера ::= SIZE СпецифнкацияПодтнпа

37.4.2    Обозначение «ОграничениеРазмера» применимо только к типам «стро<а бит», «строка, октетов*. «строка знаков», «множество из» и «последовательность из», а также типам, полученным н* них тегированием или взятием подтипа.

37.4.3    «СпецификаиняПодтнпа» задает разрешенные целочисленные значения длины элементов множества значений и имеет вид любой спецификации подтипа, которая может быть применена к следующему порождающему подтипу:

INTEGER (0..МАХ)

37.4.4    Единица измерения зависит от порождающего типа следующим образом:

Тип    Единица измерения

строка бит    бит

строка октетов    октет

строка знаков    знак

множество- из    значение-компонент

последовательность-из значение-компонент

37.5 Разрешенный алфавит

37.5.1    Обозначение «РазрешенныйЛлфавит» должно иметь вид: РазрешенныйАлфзвит :: = FROM СпецификаиняПодтнпа

37.5.2    Значения варианта «РазрешенныйАлфавнт» — это все значения, которые могут быть построены с использованием подзл-фавита порождающей строки. Это обозначение может быть приме-

Страница 65

ГОСТ Р ИСО МЭК 8824—93.

нено только к типам «строка знаков* или к типам, полученным из них тегированном или образованием подтипа.

37.5.3 Обозначение «СпецификацияПодтипа» задает знаки; которые могут присутствовать в строке знаков, оно может быть любой спецификацией подтипа, которая применима к подтипу, полученному из порождающего типа применением спецификации подтипа «SIZE(l)».'

37.6 Образование внутренних подтипов

37.6.1    Обозначение «ОграниченняВнутреннихТипов» должно

иметь вид:    *•    _    .

ОграниченияВнутрецннхТнпов :: =

WITH COMPONENT ОгрлничениеОдногоТниа J WITH COMPONENTS ОграниченияНесколькихТипов

37.6.2    «ОгрэниченняВнутрсннихТнпов» задают включение в подмножество только тех значений, которые удовлетворяют совокупности ограничений на присутствие и/или значения компонентов порождающего типа. Значение порождающего типа включается в подтип только в том случае, когда удовлетворяются все ограничения, как явные, так и неявные (см. 37.6.6). Это обозначение может быть применено к типам «множество-из», «последовательность из», «множество», «последовательность» и выборочному типу, а также к типам, полученным из них тегированием или образованием подтипа.

37.6.3    Для типов, определенных в терминах некоторого другого (внутреннего) типа (типы «множество-из», «последовательность-из» и полученные из них тегированием или образованием подтипа), предусмотрено ограничение, имеющее вид спецификации значения подтипа. Обозначение для этого случая должно иметь вид:

ОграничениеОдногоТипа :: = СпецификацияПодтипа «СпецификацияПодтипа» определяет подтип единственного другого (внутреннего) подтипа Значение порождающего является элементом подмножества значений подтипа в том и только в том <У1учас, когда каждое внутреннее значение принадлежит подтипу, образованному применением «СпецификацниПодтнпа» к внутрен-. нему типу.

37.6.4    Для типов, определенных в терминах нескольких других (внутренних) типов (типы «множество», «последовательность», выборочный и полученные из них тегироьаннем или образованием подтипе), предусмотрено несколько возможностей накладывать ограничения на эти внутренние типы. Обозначение для этого случая должно иметь вид:

ОграниченияНесколькихТипов :: =

ПолнаяСнецификаиня | ЧастнчнаяСпепификация

ПолнаяСпецнфикация = (ОграниченияТипа)

Страница 66

ГОСТ Р НСО/МЭК &&24-Ю

ЧастичнаяСпецификацня :: = {..., ОграннченияТипя)

ОграниченняТипа :: =

ПонменованноеОграннченне J ПонменованноеОграничение Ограничения!ипа

ИонменованноеОграничение :: =

Идентификатор Ограничение \ Ограничение

37.6.5    «ОграниченняТипа» содержат список ограничений на типи-компоненты порождающего типа. Для типа «последовательность» ограничения должны следовать в требуемом порядке. Внутренний тип, к которому относится ограничение, определяется с помощью идентификатора, если он имеется, или местом в перечне ограничений, как в случае типов «последовательность*.

Примечание. Если внутренний тип ис имеет идентификатора, то обозначение может оказаться неоднозначным.

37.6.6    Обозначение «ОграннченияНесколькнхТипов» охватывает два варианта обозначений: «ПолнаяСпецификация» и «Час-тичнаяСлеиифнкация». Если используется «ПолнаяСпецифика-* ция», то неявно подразумевается ограничение присутствия вида «ABSENT» («отсутствует») для всех внутренних типов, не присутствующих явно в перечне ограничений (см. 37.6.9), а каждый внутренний тип, не отмеченный ключевым словом «OPTIONAL» («необязательный») или «DEFAULT* («по умолчанию») в описании порождающего типа, должен явно присутствовать в перечне ограничений. Если используется «ЧастичнаяСпецификацня», то никаких ограничений присутствия не подразумевается, и любой внутренний тип может быть опущен из перечня ограничений.

37.6.7    На конкретный внутренний тип могут накладываться ограничения. как в терминах его присутствия (в значениях порождающего типа), так и в терминах допускаемых для него значений, либо и того и другого. Соответствующее обозначение должно иметь вия «Ограничение»:

Ограничение :: —

ОграничсниеЗначения ОграниченнеПрисутствия . 37.6.8 Ограничение значения внутреннего типа выражается.обозначением «ОграниченнеЗначения»:

ОграничеинеЗначення :: = СпецификацняПодтипа ’ пусто

Значение порождающего типа удовлетворяет ограничению в том и только том случае, когда значение внутреннего типа относится к подтипу, задапному обозначением «СпецифнкацияПодтнпа» в применении к внутреннему типу.

61

Страница 67

ГОСТ Р И СО/М ЭК «124-93

37.6.9 Ограничение присутствия внутреннего типа выражается обозначением «ОграиичениеПрисутствия»:

Ограничение! 1рисутст8ия : : —

PRESENT ; ABSENT ; OPTIONAL ‘ пусто

Смысл этих вариантов и ситуации, в которых они разрешены, определяются в 37.6.9.1—37.6.9.3.

•37.6.9.1 Если порождающий тип — «последовательность* или «множество», присутствие типа-компонента, отмеченного ключевым словом «OPTIONAL*, может быть ограничено ключевым слоном «PRESENT* (в этом случае ограничение выполняется в том и только в том случае, когда присутствует соответствующее значение-компонент), ключевым словом «ABSENT* (в этом случае ограничение выполняется только в том случае, когда отсутствует соответствующее значение-компонент), или ключевым словом «OPTIONAL* (в лом случае ограничение накладывается на присутствие соответствующего значения-компонента).

37.6.9.2    Если порождающий тип — выборочный тип. то присутствие типа-компонента может быть ограничено ключевым словом «ABSENT* (в этом случае ограничение выполняется в том и только в том случае, когда соответствующий тип-компонент отсутствует в значении.

37.6.9.3    Смысл варианта «пусто* в обозначении «Опэаничение-Присутствия» зависит от того, используется вариант «ПолнаяСпс-цификацня» или «ЧастичнаяСпецнфнкация*:

a)    в «ПолнойСпецнфикации* этот вариант эквивалентен ограничению типа «PRESENT*;

b)    в «ЧастичнойСпеинфикации* никаких ограничений не налагается.

«2

Страница 68

ГОСТ Р ИСО/МЭК Ш4—ю

ПРИЛОЖЕНИЕ А

Облмгг,

МАКРОНОТАЦИЯ

А.1 Введение

В АСН I предусмотрен способ, с помощью которого пользователь ЛСН.1 может определи 1 ь новую систему обозначений, с использованием которой он может строить tv жг nmu'данных, что и в ACJ1.I. ссылаться на них» л также сдавать значения этих типов. Эта яд*ая система обозначений определяется с помощью обозначения нотации ЛСН.1 «Макроопределение*. «Макроопределение* одновременно определяет как обозначения для построения типов и осуществления ссылок на wit, так и обозначения для записи значений (См. Е 3. содержащий пример иелольловаикя макронотаиин )

С помощью «Макроопределения» пользователь АСИ.) определяет новые обозначения с помощью некоторого множества продукций, аналогично тому, как *то делается о настоящем стандарте. Составитель макроопределения должен:

a)    полностью определить синтаксис, который предполагается использовать для определения всех тмпо». обеспечиваемых данным макроопределением; (это описание синтаксиса вызывается для синтаксического анализа каждый раз при появлении и обозначении типа АСН I имени макроопределения);

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

c)    определить в виде значений стандартных типов АСН 1 (произвольного уровня сложности) получающиеся в результате типы и значения для всех случаен использования макрообозначений для записи значений.

Конкретное использование синтаксиса, определенном с помощью макроопределения, может содержать обозначения типов н значений, заданных в обычной нотации ACH.I. Эти типы или значения (присутствующие ь конкретном нс-иильзоваиин макрооОозначений) могут быть логически связаны в период выполнения синтаксического анализа с локальными ссылками на тип или на значение с ппмощью соответствующих конструкций в макроопределении. Можно также исгроитк в маьроопределение присвоение ссылкам обычных определений типов ДСН.1. Описанные выше присвоения активизируются, когда соответствующая сии*вксичссчан категория макроопределения сопостаЪлягтги с Моментом (или &ле мента ми), «ходящими в использование новой нотации. Время их действия ограничено временем выполнения синтаксического анализа.

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

Каждое «Макроопределение» определяет систему обозначении (синтаксис) для определения типа и систему обозначений (синтаксис) для определения значений, Тип даинил ACM I, определенный с помощью макрообозиачении типа, может зависеть (но не обязательно зависит) oj макрообозначення конкретного значения, к которому относится макрообоэначсиие типа В этом отношении использование маиронотацМи типа сходно с использованием выборочного типа f«CMOlCE*V — тег типа в данном случае не определен. Поэтому в случаях зависимости типа от значения макроиотация не может быть использована там. где

63

Страница 69

ГОСТ Р ИСО/МЭК ША—93

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

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

А.2 Дополнение к набору знаков и множеству элементов ACH.I В макроиОтаиин используют знаки : и >.

Также кспользуют элементы, описанные а последующих пунктах А.2 I М а кроссы л ка Имя элемента — макроссылка

«Макроссылка» должна состоять из последовательности знакоп. удовлетворяющей требованиям, установленным для «СсылкиНаТкп» в 8.2, с тем отличием, что все буквы должны быть прописными. Внутри одного модуля одка и та же последовательность знаков не должна использоваться одновременно и как ссылка на тип. к как мякроссылка

А.2.2 Ссылка на продукцию Имя элемента — СсылкаИэПродухнию

«Ссылка!«аПроаукцню» должна состоять нз последовательности знаков, удовлетворяющих требованиям, установленным для «СснлкнНаТнп» о 8.2.

А.23 Локальная ссылка .па тип Имя момента — ЛокальпаяСсылкаНаТип

«ЛокальиаяСсылкаНаТип» должна представлять собой последовательность знаком вида «СсылкаНаТип», определенного в 8.2, «ЛокалънаяСсылкаНаТнп> используется з качестве идентификатора для типов, распознаваемых во время синтаксического анализа макросбозначеии* типа или значения А.2.4 Локальная ссылка из значение Имя элемента ЛокальнаяСсылкаНзЗначгиис

«ЛокальиаяСсылкаНаЗначсние» должна представлять собой последовательность знаков вида «СсыдкаНа Значение», определенного о 8.2. «ЛокзльнаяСсыл-каМаТип» используется в качестве идсктификатора для значений, распознаваемых во время синтаксического анализа махрообозиачеиин типа или значения.

Примечание. «ЛокальиаяСсылкаНаТип» должна начинаться с прописной буквы

А 2.5 Элемент разграничения я а р и а н т о о Имя элемента — « . *

Этот элемент состоит из единственного знака : .

А.2.6. Элемент, обозначающий конец определения Ими элемента — >

Этот элемент С0С70нг из единственного знака >.

Примечание Элемент <, обозначающий начало определений, определен п 8 13

А 2.7 С к нт а к с и ч ес к и й терминальный зле мент Имя элемента — а-стпока

Элемент «а-строка» («строка в кавычках») должен состоять из произвольного (возможно, равного нулю) количества знаков из знакового набора ACH.I (см. раздел 7). обрамленных кавычками ". Знак " представляется н «строке, в кавычках» в виде пары знаков

Примечание. Использование «строки в кавычках» («а-строкн») в макро-обозначении задает появление о соответствующем месте анализируемого синтаксиса знаков, заключенных между кавычкам* (").

64

Страница 70

ГОСТ Р ИСО МЭК 88*4-»

А.2.8 Элементы — ключевые слона синтаксических категорий

Имена элементов — «.itring*

4    «identifier»

«number»

«empty»

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

Примечание. В макронотации не поддерживается различие между идентификаторами к ссылками, отличающихся только типом первой буквы' строчка» или прописная Это обус.тов.ино историческими причинами.

Таблица A.I — Классы последовательностей, задаваемые элем.

live felCMfttra

Р*>аел. опэеаелепке

«String» «identifier* «number» * «empty»

пром угольная последовательность знаков 8.3 — Идентификаторы 8,8 Числа 8.7 — Пустой члемент

А.2.9 Дополнительные элементы — ключевые слова

Имена элементов — .MACRO

TYPE - •

NOTATION

VALUE

value

type

Элементы с приведенными выше именами должны состоять нз последовательностей знаков, совпадающих с их именами.

Элементы, определяемые в А2 2—А 2.4. не должны совпадать с какой-либо последовательностью зиокоч из А 2.9, за исключением случаев, оговоренные ниже.

Ключевое слово «MACRO» должно использоваться для того, чтобы обозначить начало макроопределения. Ключевое слово «TYPE NOTATION» должно использоваться в качестве имени продукции, определяющей новые обозначения типа. Ключевое слово «VALUE NOTATION» должно использоваться в качестве имени продукции, определяющей новые обозначения значения. Ключевое слово «VALUE» должно использоваться в качестве «ЛокальвойСсылкиНаЗиачеиие». которой присваивается получаемое в результате значение. Ключевое слово «value» должно использоваться для указания того, что в каждом применении-новых обозначений в этом месте должна содержаться значение (записанное в обозначениях ACI1.1) некоторою типа (задаваемого макроопределением). Ключевое слово «type» должно использоваться для указания того, что в каждом применении новых обозначений п этом месте-.должно содержаться обозначение вида «Тип» (в обозначениях АСН.1).

Ьб

Страница 71

ГОСТ Р ИСО'МЭК R824-93

А.З Обозначения для записи макроопределений

А.3.1 Мак рос родство должно быть определено с использованием обозначений вида «Макроопределение»-Макроопределение :: =

макроссылка

MACRO

«::•—»

Со дер ж а ниеМа кр©

Содержа ннеМакро :: =

BEGIN ТелоМакро END J макроссылкз    !

ВиешняяМакроссылка

ТелоМакро ;: =

ПродукцияТипа ПродукцияЗиачеиии ВспомогательныеПродукцин ПродукиияТипа :: —

TYPE NOTATION

СпнсокВариантовМакро ПродукияяЗначеиия :: =

VALUE NOTATION <:; =»

СписокВариаитопМахро ВспомогательныеПродукцин :: =

Список! 1родукции J empty

Список! 1ролукций :: —

Продукция    !

Си исок Г1 родукии R Продукцн я Продукция :. =

СсьмкаНаПродукцню «:. =»

СпнсокВариантовМакро ВиешняяМакроссылка -: —

СсылкаНаМодуль.макроссмлка Примечание. Предполагается дать возможность в макроопределении ссылаться на другие макроопределения. Вопрос о том, согласуется ли у г о с правилами настоящей нотации, подлежит дальнейшему изучению.

А.3.2 Если для конструкции «СодержаинеМакро» был выбран вариант «макроссылка», то модуль, и котором содержится данное макроопределение, должен либо

a)    содержать другое макроопределение, либо

b)    содержать это макроопределение среди своих «ВходныхСимволов».

А.3.3 Если для конструкции «СодержаинеМакро» был выбран вариант

«ВнешиииМакроссылка», то модуль, заданный «СсылкойНаМодуль», должен содержать макроопределение, определяющее ату «макроссылку*. Это макроопределение н является определением данной макроссылкн.

А.3.4 Цепочка определений. могущая возникнуть в результате многократного применения правил А.3.2 и А.3.3. должна заканчиваться «Макроопределением, в котором используется вариант «BEGIN ТелоМакро END»; «ТелоМакро» ♦того макроопределения определяет обозначения типа и значения данного макросредства

Страница 72

ГОСТ Р ИСО/МЭК 8824—93

А.3.5 Каждая «Ссылка На Продукцию», присутствующая в «Опрсделении-Сммволи» (см А.3.9), должна присутствовать в точности один раз в качестве первого элемента некоторой «Продукции».

Л.3.6 Каждый случай использования макрообозначении типа должен начинаться с последовательности знаков «Макроссылка», за которой с .тс дует одна ю последовательностей знаков, удовлетворяющих продукции «TYPE NOTATION» после применения все* продукций, заданных в макроопределении

А 37 Каждый случай использования макрокотацни для записи .значения должен быть некоторой последовательностью знаков hi чиожества, описанного продукцией «VALUE NOTATION» после применения всех продукций, заданных в макроопределении.

А.3.8 Множество последовательностей знаков, описываемое продукцией «TYPE NOTATION* или VALUE NOTATION», определяется соответствующим «СпискомВаривнтовМакро». имеющим вид:

Список Варна итопМакро : : =

ВариантМакро ;

СпиеокВарнантоаМэкро « : » ВариантМакро Множество последовательностей знаков, описываемое продукцией «Спи-сокВариантовМакро», состоит из множеств последовательностей знаков, описываемых продукциями «ВариантМакро», входящими и «СиксокВлркаитов-Макро».

А.3.9 Обозначения для записи последовательности «ВариаитыМакро» в макроопределении определяются следующим образом:

ВариантМакро .: = СписохСимиолов СпнсокСнмнолоа :: —

Символьный Элемент ;

СпысокСимполов Символьный Элемент Символьный Элемент : : ~-ОпрсделениеСимвола ,

ВложенносОпределение МакроТип : ■ ЛокальиаяСсылкаПзТии Тип

. ОпределеннеСимвола : ■ -»•

«а-строка*    J

СсылкаНаПродукаию    j

«intiR»    ;

«identifier*

«ЛЫ)|1>ег>

«citiply»    !

lypp    ]

lypi (ЛокальиаяСсылкаНаТип)    J ,

value (МакроТип)    J

value (ЛокальнаиСсылкаПаЗначеиш- МакроТип)    ;

value I VALUE МакроТип)

Примечание. В макроопределении выражение «МакроТип», определенное п этом же макроопределении, может присутствовать в любом месте, где в соответствии с правилами нотации ACH.I требуется выражение «Тип».

Множество последовательностей знаков, описывамое продукцией «Вариант-Макро». образуется последовательным соединением любой из строк знаков, описываемой первой последовательностью «ОпредслеикеСкмаола» с любой из строк знаков, описываемой второй последовательностью «ОпределениеСимвола» и так л a.we. вплоть до последнею «ОпрсделсиияСимвола» из «СпискаСимэолов».

Страница 73

ГОСТ Р ИСО .МЭК &S24—93

Примечание. «ВложенныеОирсдедеиия», если они присутствуют, не играют явной роли при определении множества допустимых строк.

A.3.I0 Элемент («а-строха») описывает последовательности знаков, составляющие «з строку», без обрамляющей пары кавычек (").

А.З.П Элемент «СсылкаНаПродукцию» описывает произвольную последовательность знаков, задаваемых «Продукцией», идентифицируемой данной ссылкой.

А.3.12 Последовательности знаков, описываемые следующими четырьмя вариантами продукции «ОпредедониеСимвола*, задаются таблицей А.1.

Примечание. Последовательности знаков, описываемые вариантом «.string», должны заканчиваться в использовании макрообозначения появлением последовательности, описываемой очередным выражением «ОпредсленнеСик-воли» к «СпискеС им волов».

Л.З 13 Вариант <;уре» описывает последовательности знаков, образующие обозначение вида «Тип», соответствующее определению п 12.1,

Примечание. Выражение «ОпределснныйТип» в определении из 12,1 может э данном случае содержать «ЛокальнуюСсыдкуНаТип», служащую для обозначении типа, определенного с помощью макроопределения.

Л.З 14 Вариант «Суре (ЛокальнаяСсылкаНаТнп)» описывает последовательности знаков, образующие выражение «Тип», соотрстствуюип'с определению из 12 1, и кроме ioi-o присваивает этот тип «ЛокальнойСсылкеПаТнп*

Л.З.15 Вариант «value (МакроТип)* описывает последовательности знаков, образующие.выражение «Значение», соответствующее определению из 12.7, того типа, который задан выражением «Макротип*

А.3.16 Выражение «value- (ЛоквльнаяСсылкаНаЗначение МакроТип)» описывает последовательности знаков, образующих выражение «Значение», соответствующее определению из 12.7. того типа, который задан выражением «Мак-роТнп». и кроме того присваивает пот тип «ЛокальнойСеылкеНаТип». Впоследствии юй же «ЛокяльмойСеылкеНаТип» может быть присвоен яругой тип.

А3.17 Вариант «value (VALUE МакроТип)» Описывает последовательности знаков, образующих выражение «Значение», (соответствующее определению из 12.7) того типа, который задан выражением «МакроТип», но кроме того возвращав! данное значении и качестве значения, заданного данным использованием макрообозна'чекий. Тип возвращаемого значения задастся выражением «МакроТип»

А.3.18 При синтаксическом анализе любого правильного использования мак-рообояначсиий должно осуществляться в точности одно присвоение значения выражению «VALUE» (описанному в А З 17 или А3.19).

А.319 Выражение «ВложснныеОпределения» определяется следующими продукциями:

ВложенжИ'Опредс.к-иис : • ■=—

<С!!исокВложеиныхОлредедсний>

СпнсокВложскныхОпределеииЙ :: —•

ВложеиноеОпределение ;

СписокВложенныхОпредслений ВложенносОпре деление

Вложенное-Определение :; «

ЛокальноеПрнсвоеннеТипа |

ЛокальноеПрисвосниеЗначени*

ЛокальиоеПрисаоеннеТнпа :: '•

ЛокальнаяСсылкаНаТип

68

Страница 74

ГОСТ Р ИСО МЭК 8824-Ю

МакроТип

ЛокэльаоеПрисвоемиеЗнзчсиии • • —

ЛохальнзяСсылкз!(аЗначение МакроТип « :: = »

МакроЗначснис

Макрозначеине :: =

Значение J

ЛокалънаяСсылкаНаЗначскнс

Присвоение «.МакроТипа» «ЛокальнойСсылксНаТнп», а также «МакроЗиа-чения» «ЛокальмойСсылксНаЗкачеиие» по ВложеиныхОиредслениях» осуществляется при синтаксическом анализе использования макрообозначения при обработке «В.и>жеииылОнрс.ил<иий» н сохраняемся до переопределения «Локальном СсылкнНаТип» или «ЛокальнойСсыдкнНаЗначсние»

• Примечания

1    Использование связанной «ЛокзльнойСсылкиНаТнп» или «Локальной-СсылкиНаЗиачение* в другом месте того же варианта возможно только при определенных предположениях относительно алгоритма синтаксического разбора. Эти предположения должны быть описаны в комментарии. Например, использование «ЛокальнойСсылкиНаТип», текстуально следующей за «ВложеннымиОп-редсленияуи», возможно только при синтаксическом разборе слева направо

2    «ЛокольиоАСсылкеНаТио». заданной как «VALUE*, может быть присвоено значение как с помощью конструкции «value (VALUE МакроТип)», так и с помощью вложенного определения. В обоих случаях присвоенное значение является возвращаемым значением, в соответствии с А.3.17.

А 4 Использование новой нотации

Обозначение типа (или значения), определенное с помощью макросредства, может применяться цо всех случаях, когда п соответствии с правилами настоящего стандарта требуется использование обозначения «Тип» (или «Значение»), при условии, чю выполнены следующие требования:

a)    макросредстио определено в том же модуле; либо

b)    макросредство вводится в модуль посредством включения «макроссылки» в конструкцию «ВходныеСимволы» этого модуля.

Чтобы обеспечить возможность Ь). «макроссылка» может быть подставлена в качестве «Символа» и обозначениях 9.1.

Примечания.

1    Описываемое в этом приложении расширение нотации ACH.I не используют в основном тексте настоящего стандарта.

2    Возможно построение модулей, содержащих последовательности присвоения тнпз и макроопределении, приводящих к с*оль угодно сложному синтаксическому разбору значений, заданных с использованием ключевого слова DEFAULT.

69

Страница 75

ГОСТ Р ИСО МЭК R824-93

ПРИЛОЖЕНИЕ li Обяэаггльхос

ОПРЕДЕЛЯЕМЫЕ ИСО ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER

В.) Из корневой вершины дерева идентификаторов обгектов выходят три ребра. Присвоенные; им «качения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы:

Значение    Идентификатор    Служба, отучающая за

присвоение следующих компонентов

0    ccitt    МККТТ

1    iso    ИСО

2    joint iso ccitt    См. Приложение О

Примечание, В остальной часта приложения рассматривают присвоение значений, осуществляемое ИСО.

В.2 Каждый из идентификаторов *cciU», «iso» и «joint-iso-cciit», опрсдедеи-ных выше, может использоваться в качестве выражения «ИмеинаяФорма».

В.З Из вершины, проидентифицированной «iso», выходят четыре ребра. Присвоенные им значения н идентификаторы таковы:

Значение    Идентификатор    Служба, отвечающая за

присвоение следующих компонентов

0    standard    см    В.4

1    registration-authority    см.    В.5

2    member-body    см.    В.6

3    iHentilicdorganiiation    см    В.7

Эти идентификаторы могут использоваться в кэчестве выражения «Имениая-Форма».

В.4 Каждому иj ребер, выходящих и.з вершины «стандарт» («standard»), должно быть присвоено значение, разное номеру некоторого стандарта. Если стандарт состоит из нескольких частей, то из соответствующей ему вершины должны исходить ребра, соответствующие номерам частей, если в тексте стандарта явно не указано иначе. Последующим ребрам должны быть присвоены значения, определяемые в настоящем стандарте.

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

В.5 Ребра, выходящие из вершины «регистрационная служба» («registration authority»), резервируются для последующего определения и дополнении к настоящему стандарту, которые будут разрабатываться параллельно с определением процедур для идентификации различных регистрационных служб ВОС.

В 6 Ребрам, выходящим из вершины, в которую ведет ребро «комитет-член ИСО» («member body»), должны быть присвоены значения трехлиячиого цифро-

70

Страница 76

ГОСТ р ИСО.МЭК 8*24—93

вою кода ораны в соответствии с ИСО 3166; этот код идентифицирует национальный комитет-член ИСО (см примечание) «ИмениаяФорма» этого компонента идентификатора объекта не допускается Ребра, следующие эн «кодом страны», не определяются в настоящей стандарте.

Примечание. Наличие кода страны в ИСО 3166 не обязательно озиач» ет, что действительно существует комитет-член ИСО. представляющий эту страну, или что в сферу деятельности этого комитета «ходит схема выделении компонентов идентификаторов объектов.

В 7 Ребрам, выходящим из кершины, в которую ведет ребро «зарегистрированная организация» («idenlified-organization»). должны быть присвоены значения международного кодового определителя (International Code Designator — 1CD), которые нззначахяси регистрационной службой, связанной с ИСО 6523; ICD идентифицирует организацию — источник кодов, зарегистрированную вы шеупомянутой регистрационной службой а качестве источника компонентов идентификатором объектов (см примечания I и 2). Ребрам, непосредственно следующим та ICD, должны быть присвоены значения вида «код организации», которые выделяются Организацией — источником кодов п соответствии с ИСО 6523. Ребра, следующие за «кодом организации», в нестоящем стандарте не определяются

Примечания

1    Гараитя тою. ни поды организаций, используемые как цифровые значения идентификаторов объектов к назначенные организациями, присваивающими коли, будут соответствовать требованиям настоящего стандарта, обеспечивается требованием регистрации этих организаций регистрационной службой, связанной с ИСО $523

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

3    Предполагается, что организации, идентифицируемые с помощью «кода организации», будут определять следующие ребра таким образом, чтобы гарантировать неповгоряемостъ соответствующих значений.

4    Следствием В.7 является то, что любая организация может получить код от соответствующей организации, присваивающей коды, и после swro присваивать значения вида «идентификатор объекта» (OBJECT IDNTJFJER) для своих собственных целей, причем гарантируется, что эти значения не будут повторять значении, назначенные другими организациями. Таким образом некоторая фирма может присвоить значение тина «идентификатор объекта (OBJECT IDENTIFIER)» coin v 4<>6i твеиным информационным форматам.

71

Страница 77

ГОСТ Р ИСО/МЭК *824-93

ПРИЛОЖЕНИЕ С Обязательное

ОПРЕДЕЛЯЕМЫЕ МККТТ ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER

С.J Ии хорнеэоЛ вершины дерем идентификаторов объектов выходят три ребра. Присвоенные нм значения и идентификаторы, а также службы, ответственные да пр|«сеоенне значений следующих компонентов, таковы.

Значение    Ид^пификатор    Служба,    отвечающая за

присвоение следующих компонентов

0    rati    МККТТ

1    iso    НСО

2    Joiat-iso-ccttt    Си. приложение D

Примечание В «малиной части этого приложения рассматривается присвоение значений, осуществляемое М ККТТ

С.2 Каждый из идентификаторов <ccltt>, <iso> и «joint-isoccitt». определен-пых выше, может использоваться в качестве выражении «ИмениаяФорма»

С-3 На вершины, лрондеитифнциро&знной «cciit», выходят четыре ребра. Присвоенные им значения и идентификаторы таковы:

Значение    Идентификатор    Служба, отвечающая ла

присвоение следующих компонентов

0    recomincndaiion    см    С,4

1    question    см.    С.5

2    adminis*ration    см.    Сб

3    network-operator    см    С.7

Эти идентификаторы могут использоваться и качестве выражения «Имсн-напФор^а».

С.4 Ребра, следующие »а ребром «Рекомендация» («recommendation»). имеют значения от 1 до 26. которым присвоены -идентификаторы от а до х Последующие ребра имеют значении номеров рекомендаций МККТГ той серии, которая обозначается предыдущей буквой. Ребра, следующие за этими ребрами, определяются соответствующими рекомендациями МККТТ. Идентификаторы 07 а до г могут использоваться в качестве «ИмениойФормы».

С.5 Ребра, следующие за ребром «вопрос» («Question»), имеют значения, определяемые номером исследовательской труппы МККТТ и периодом времени. Эти значения вычисляются по следующей формуле:

номер исследовательской группы (период * 32)

где «период» имеет значение 0 для I9&4—1!Й8 гг., 1 — для 1988—1992 гг., и т. д.. а множитель 32 задан в десятичной системе счисления.

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

С.6 Ребра, следующие за ребром «администрация» («administration»), имеют значения цифровых кодов стран (DCC), определенных рекомендацией

Страница 78

ГОСТ Р И СО М ЭК 8924-м

МККТТ X. 121 Последующие ребра определяются п соответствии с потребностями управлением телекоммуникаций страны, определенной кодом DCX.

<^.7 Ребра, следующие за ребром «оператор сети» («nclwork-operalor»), имеют чиачеиия цифровых кодой сетей (DNIC). определенных и рекомендации МККТТ X.I21. Последующие ребра определяются в соответствии с потребностями управлением телекоммуникаций или зарегистрированным частным эксплуатационным агентством. RPOA. идентифицируемым кодом DNIC.

ПРИЛОЖЕНИИ D Обязательное

СОВМЕСТНО ОПРЕДЕЛЯЕМЫЕ ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER

D.I Из корневой вершины дерева идентификаторов объектов выходит туи ребра Присвоенные им значения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы:

Значение    Идентификатор    Служба,    отвечающая    за

присвоение следующих компонентов

0    ссШ    МККТТ

1    tso '    ИСО

2    joint-iso-ccitt    См.    ниже

Примечание. В остальной части этого приложения рассматривается присвоение значений, осуществляемое совместно ИСО и МККТТ

D.2 Каждый из идентификаторов «ccilt*. «iso* и «joinl-iso-cciU». определен-пых выше, может использоваться в качестве выражения «СимвольнаяФорма».

D.3 Ребрам, следующим за ребром «совместное определение ИСО н МККТТ* («joinl-bo-ccilt»). присвоены значении, периодически назначаемые по согласованию между ИСО и .МККТТ для идентификации их совместных областей деятельности пи стандартизация о соответствии с «Процедурами присвоения значений компонентам идентификаторов обьектов для совместного использования ИСО н МККТТ»'

D.4 Ребра, которые следуют за упомянутыми в ОЛ, выделяются ij соответствии с процедурами, действующими в момент выделения

Примечание. Предполагается, что в данном случае для присвоения значений будет осуществляться передача полномочий смешанной группе экспертов ИСО н МККТТ, ответственных за область совместной работы.

D.5 Поскольку в первых международных стандартах н рекомендациях МККТТ, относящимся к совместным областям стандартизации, потребовалось выделение идентификаторов объектов (OBJECT IDENTIFIER) до установлении процедур, упомянутых a D.3, то они выделяются так, как описано в приложениях В или С. Идентификаторы информационных объектов, определенные таким спо-. собом в международном стандарте или рекомендации .МККТТ. не будут меняться после установления процедур, упомянутых п D.3.

1 Регистрационной службой, ответственной за присвоение значений компонентам идентификаторов объектов для совместного использования ИСО и МККТТ. является Американский национальный институт стандартов (ANSI), 1430 Broadway, New York. NY

Страница 79

ГОСТ Р ИСО .НЭК ММ-93

П РИЛ ОЖЕНИ Е Е Справочное

ПРИМЕРЫ И РЕКОМЕНДАЦИИ

В этом приложении приводятся примеры использования поганки ACH.I для описания некоторых взятых произвольно структур данных. В ном также содер жатся пояснения и рекомендации по использованию различных возможностей ЛСН I.

E.I Пример записи учета кадров

В этом подразделе использование ACH I иллюстрируется на примере произвольно мятой простой записи учета кадров.    *

Е. 1.1 Неформальное описание записи учета кадров Ниже приводится структура запис* учета кадров и ее значение для конкретного служащего.

Имя:    John Р Smith

Должность:    Директор

Учетный номер:    51

Дата найма.    17 сентября 1971

Имя супруги    Магу Т Smith

Число детей:    2

Информация о ребенке

Имя    Ralph Т Smith

Дата рождения    II ноября 1957

Информация о ребенке

Имя:    Susan В. Tones

Дата рождении-    17 июня 1959

Е.1.2 Описание структуры записи с помощью ACH.I

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

PersonnelRecord :: .=* [APPLICATION 0| IMPLICIT SET (    Name,

title number datcOIHirc nameOf Spouse children

0| VisibleString.

^mpioyccNumber.

I| Date.

21 Name,

3| IMPLICIT SEQUENCE OF Childlnformation DEFAULT ( ) \

Childlnformation :: — SET

<    Name

dateOfBirth    |0| Date}

Name : - [APPLICATION 1[ IMPLICIT SEQUENCE

JgivenName    VisibleString,

initial    VisibleString.

lamllyName    VisibleString}

Employ «Number : - (APPLICATION 2| IMPLICIT INTEGER

Date :: = [APPLICATION 3| IMPLICIT VisibleString--YYYYMMDD

74

Страница 80

ГОСТ Р ИСО'МЭК 8824-93

В »том примере иллюстрируется один из аспектов синтаксического разбора выражений ЛСН.1 Синтаксическая конструкции «по /молчанию» («DEFAULT») может применяться только к элементам выражения «последовательность* («SEQUENCE») или «множество» («SET»), но не может бить применена к моментам    «последовательность    из»- («SEQUENCE OF»).    Поэтому    выражение

«DEFAULT { )» в «записи учета кадров» («PersonnelRecord») относится к выражению «дети» («children»), а не к выражению информация о ребенке» {«Childlnformation»).

£.1.3 Описание значении записи с помощью ACH I

.значение лап иен учета кадров для описанного в начале подраздела, служащего- в стандартных обозначениях для значений данных, будет иметь вид (    JpivenName «John», initial «Р», familvName «Smith»},

title    «Director»    ,

number    51    ,

datcOIHire «19710917»

nameOfSpousc (jjivenName «Магу», initial «Т», family.Маше «Smith»), children

{    ( {givenName «Ralph», initial «Т». familyNamc «Smith»),

dateOIBirth «19571111»),

{ (pivenName «Susan», initial «В». famllyName «Jones»), daieOSBirth «19590717»)) )

E.2    Рекомендации по использованию нотации

Типы данных и формальная нотация, определенные и настоящем стандарте, «владеют большой гибкостью, предоставляя возможность их использования в широком спектре протоколов. Эта гибкость, однако, можег привести к нсдора-зу пени ям, в особенности при недостаточном опыте ее использования. В этом приложении делается попытка свести к минимуму возможность недоразумений с (юмощью рекомендаций по использованию нотации и примеров ее использования. Для каждого из встроенных типов данных предлагается одна или несколько ре комендаций по использованию. Типы «строка знаков» (например, «отображаемая строка» («VisiblcStnng») и типы, определенные в разделах 32—35, здесь ие рас-матриоают    /

F..2.I    Булевский тип

Е.2.1.1 Булевский тип следует использовать для представления значений логических переменных (то есть имеющих два разных состояния), например, от-ветя на вопрос «да» или «нет»

Пример

Employed : = BOOLEAN

E.2.1.2 При назначении ссылочного имени булевскому типу следует использовать ело по, подходите* дли обозначении состояния «истина».

Пример • Married :: ~ BOOLEAN

а ие

MaritalStatus :: — BOOLEAN См также Е.2.3.2

Е.2.2 Целочисленный тип

Е 2.2.1 Целочисленный тип следует использовать для представления значений количественных числительных и целочисленных переменных для всех практических целей, без ограничения величины

Пример

ChecfcingAccountBalancc :; = INTEGER

- значение выражено в центах: отрицательное

— значение означает перерасход

75

Страница 81

ГОСТ Р ИСО-МЭК 8824—93

Е2.2.2 Следует определять допустимые максимальное и минимальное значения целочисленного типа D качестве выделенных значений Пример

DayOITheMonth ; ^ INTEGER {fir»l(l>, ta*l(3l)J Е.2.3 Перечислительный тип

Е.23.1 Перечислительный тип с выделенными значениями следует использовать для представления значений переменной с тремя или более состояниями. Если единственным требованием и значения и переменной является их отличие друг от друга, то значения следует присваивать, начиная с нуля,

DayOfTbeWeek ENUMERATED {sunday(O). monday(J). luesday(2).

Wednesday(3), lhurs<Jay(4), ftiday(5), safurday(6))

E.2 3 2 Перечислительный тип следует использовать для представления значений переменной, которая имеет только два состояния, но у которой могут появиться дополнительные состояния и следующей версии протокола,

Пример

Следует использовать описание

Marita'Status — ENUMERATED (single(O), niarricd(l>) ччми црсш'лагж'тся его последующая замена на следующее:

MaritalStatus :: •=- ENUMERATED fsing)e(O), married (I). widowed(2)}

E.2 4 Тип «действительное число»

E 2.4.1 Тип «действительное число» следует использовать для представления приближенных значений Пример

AnelelnRadians REAL

pi REAL :: — (31415926535897932384626-13383279, 10. -30}

E-2.5 Тип «строка битов»

E 2.5.1 Тип «строка битов» следует использовать для представления даонч-вых данных, формат н длина которых не заданы или заданы к другом месте, при !»том длина данных в битах не Обязательно кратна восьми.

Пример

G3FacsimilePage ■; - BIT STRING

--после*озательиость битов, удовлетворяющая

--рекомендация МККТТ Т.4.

Е.2.5 2 Следует определять первый и последний имеющие смысл биты строки фиксированной длины п качестве выделенных битов

Пример    ,

Nibble ::    BIT    STRING    {first(0). >ast(3)>

E.2.53 Тип «строка битов» следует использовать также для представления значений битового отображения, то есть упорядоченной совокупности логических переменных, показывающих, выполняется или нет некоторое определенное условие для каждого объекта из некоторой упорядоченной совокупности,

Пример

SunnyDaysO/TbeMoiiih :: — BIT STRING <fiwt(l), last(3i))

--i-й день — солнечный в том и только

--в том случае, если i-fl бит равен единице

Е.2.54 Тип «строка битов» с поименованными значениями следует использовать для представления значений совокупности взаимосвязанных логических переменных.

Пример

Personal Status . = BIT STRING

{marricd(O). emp!oyed{l), veteran(2), cot)cgcGraduaIe<3)|

76

Страница 82

ГОСТ Р ИСО'МЭК 8624-Ю

• Е.2.6 Тнп «строка октетов»

Е.2.6.1 Тип «строка октетов» следует использовать для представления зи-ченнй двоичных данных, формат и длина которых не заданы или заданы в другом месте, причем длина данных в битах кратна восьми Пример

G4 Facsimile! mage :: = OCTET STRING

--последовательность октетов,

— — удовлетворяющая рекомендациям --МККТТ Т.5 н Т.6

Е.2 6.2 В случаях, когда доступен дли использовании требуемый тип «строка знаков», его использование следует предпочесть использованию типа «строка октетов».

Пример

Surname :: — PrlntabieStrlng

Е.2.6.3 Тнп «строка октетов» следует использовать для представления любой строки информации, которая не может быть представлена с похотью одного нз типов «строка знаков». Обязательно следует определить используемые знаки и способ нх представления в виде октетоа,

Пример

PackedBCDString :: - OCTET STRING

--цифры от 0 до 9, две цифры на октет,

--каждая иифра кодируется как 0000—1001,

--'комбинация 1111 используется для

--дополнения до полного октета

Е.2.7 Вырожденный т и и

Вырожденный тнп («NULL») следует использовать о том случае, когда требуется задать отсутствие элемента некоторой последовательности.

Пример

Patiemldentiftcr :: SEQUENCE {name VisibleStrine. rcomNumber CHOICE (INTEGER,

NULL — -г в случае выбывающего пациента--)}

Примечание. Тот же результат может быть достигнут с помощью параметра «OPTIONAL».

Е.2.8 Типы «последовательность» н «последовательность из»

Е.2.8.1 Тип «последовательность из» следует использовать для представления совокупности переменных одного и того же типа, количество которых велико или непредсказуемо, к порядок следования существенен.

Пример

NaineaOfMemlHT,Nation* :: - SEQUENCE OF VisibleStrlng --перечисление в порядке вступления

Е.2.8.2 Тип «последовательность» следует использовать для представления совокупности переменных одного и того же типа, количество которых невелико и известно, порядок следования существенен, при условия, что состав совокупности не должен меняться при переходе к следующей версии протокола.

Пример

NaineiOfOffiscrs :: = SEQUENCE (president VisibleString, vicePresidcnt VwibtcString, secretary VisibleStrlng)

77

Страница 83

ГОСТ Р ИСО МЭК *824—93

Е.2.8.3 Тип «последовательность* следует также использовать для представления совокупности переменных различных типов, количество которых 1)све-лико и известно. при условии, что состав совокупности не должен меняться при переходе к следующей версии протокола Пример

Credentials :: - SEQUENCE JuserName VisibleString, password VisibieString, aceountNuniber INTEGER}

E 2.8.4 Если к типе «последовательность» имеете и фиксированное число пигментов различных типов, то каждому элементу, чье назначение не очевидно из его типа, следует присвоить ссылочное ими Пример

Fife .: ~ SEQUENCE { ContentType. other FileAUributes, content ANY )

См гакж1- E 2 ЗД. t.2.3.4 и E.2 5 Е2.9Тип «множество»

E.2.9.1 Тип «множество» следует использовать для представления совокупности переменных, количество которых невелико и известно, а порядок следования несущественен. Кажлой переменной следует присвоить метку контекстно-зависимого класса.

Пример

UserName :. -= SET

personaiNamc    (0|    IMPLICIT VisibleString

organisationName    [I]    I,'VIPUCIT VisibieString.

counlryKainc    *    Jij IMPLICIT Y'isibieStnns)

E 2.9,2 Тип «множество» с включением параметра «OPTIONAL» следует ис-пользозать для представления совокупности переменных, которая является собственным или несобственным подмножеством другой совокупности переменных. причем количество переменных достаточно мало, а их порядок несущественен. Каждой переменной следует присвоить метку контекстно-зависимою класса.

Пример

UserName :, =*» SET

(persoj'.alNanie    JO]    IMPLICIT VesibleString,

organisatTonNaine    [l|    IMPLICIT VisibieString

OPTIONAL

--по умолчанию — название данной органилзиии--,

countryName    121    IMPLICIT VisibleString

OPTIONAL

— • - по умолчап:1К> — иозоавие данной страны — -    J

Е.2.9.3 Тип «множество» следует также использовать для представления совокупности переменных, состав которой с большой вероятностью будет меняться при переходе к следующей версии протокола. Каждой переменной следует присвоить метку коит'екстио эависнмого класса.

Пример

UserName :: = SET    .

iP^rsonalName    10)    IMPLICIT VisibieString.

organisatkmName    |l|    IMPLICIT VisibieString

OPTIONAL

Страница 84

ГОСТ Р ИСО/МЭК 8824-93

па умолчании» название даи1«о» организации rountryNamc (2) IMPLICIT VUnbleSlring OPTIONAL -- — no умолчанию -- название данной страны - - другие необязательные атрибуты оставлены для ----дальнейшей проработки----}

Е 2.9 4 Если количество «лемеотоа. входящих в тин «множество», фиксировано, то каждому элементу, чье назначение не очевидно из его типа, следует присвоить ссылочное ими.

Прим Vр

Fife At tributes :. = SET

(owner    |0| IMPLICIT User Name ,

sizeOfContc-nt InOclels    I j IMPLICIT INTEGER .

I‘21 IMPLICIT AcceasConlfols.

1

E.2.9.5 Тип «множество» следует также использовать для представления совокупности переменных разных типоя, порядок которых несущественен Пример’

Keywords : ■= SET OF Vi*ibleString - — в произвольном порядке См также Е 2 5.4 к Е 2.10.3

Е.2.10 Тегированный тип

Е 2.10 1 В рамках настоящего стандарта тегированный тип универсального класса используют для определения широко используемых, не зависящих от конкретного применения типоя данных, представление которых должно отличаться ит представления всех других типов данных.

HncriplionKcy - . = (UNIVERSAL .Э0| IMPLICIT OCTET STRING семь октетов

0.2.10.2 Тегированный тип прикладного класса следует использовать при определении типа данных, которые находят широкое, не локализованное неволь зоваиис о некотором контексте представления, причем представление этого типа должно отличаться </i представлении всех других типов данных и том же контексте представления.

Пример

File Name :: = [APPLICATION 81 IMPLICIT SEQUENCE {dinrcioryNanic    VisiblcString,

Directory RclativeFileN'aiue    VisibleS(ring)

E.2.103 Контекстно-зависимые тегированные типы используют для различения элементов множества. Если единственным требованием, предъявляемым к числовым пч-ам. является отличие их друг от друга, то их следует присваивать, начиная с нуля Пример

Cu$tomerR«cord . — SET

(name    |<Ц IMPLICIT    VlslbleStrtnjj.

mailingAddres»    j 11 IMPLICIT    VisiblcSlring,

account Number    f2 IMPLICIT    VisibleString.

balanceDue    |3| IMPLICIT    VislhleSlring

- в центах--)

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

79

Страница 85

ТОСТ Р И СО М ЭК Ь»24—П

Пример

Product Record :: ■= SET f    UniiormCode

description    101    IMPLICIT    INTEGER,

inventory No    111    IMPLICIT    INTEGER.

invento'ryLcvel    |3|    IMPLICIT    INTEGER)

IJniJormCode : = (APPLICATION 13| IMPLICIT INTEGER £.2.10.5 Контекстно-зависимые тегированные типы следует также при определении вариантов выборочного типа (CHOICE), венным требованием к тегам является их отличие друг от друга, то следует на чинать с нулевого значения

использовать Если единст-

Пример CustomerAltribule {name

mailingAddress account Number balanecDue

SET

IMPLICIT VisibleStrinR.

IMPLICIT VisibleString,

IMPLICIT INTEGER.

IMPLICIT INTEGER —*- n центах —    )

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

Пример

ProductDcsignator : : — CHOICE (    UnilormCod-

descrtption    (С| IMPLICIT    VisibicString.

inventorvNo    jl| IMPLICIT    INTEGER. )

UniformCode :: = [APPLICATION 13| IMPLICIT INTEGER E.2.10.7 В случаях, когда некоторым вариант, входящий в определение вы боронного типа (CHOICE), представляет-собой тип. имеющий тег универсального класса (UNIVERSAL!, необходимо использовать коигскстио зависимый тег. за исключением случаев, когда ставится цель обеспечить' выбор из нескольких (более одною) разных универсальных типов.

Пример

Custonwirldentliier : г — CHOICE (name VisiblcString,

•Hjn'jCi' ‘NTEGER |

L*.2.10.8 Тегированный тип пользовательского класса следует использовать дли определения данных, используемых а рамках некоторой Организации или страны, причем требуется, чтобы была возможность отличить эти данные (по их представлению) от всех остальных данных, используемых чгой организацией или страной

AoneBadgeNumber :: . (PRIVATE 2) IMPLICIT INTEGER E 2 10.9 В приводящихся здесь рекомендациях во всех примерах, где это допустимо, используют «неявное» задание тегов, то есть с указанием «IMPLICIT* При использовании соответствующих правил кодирования это приводит к компактному продета плен и ю данных, что весьма желательно в некоторых приложениях. й других приложениях компактность может быть менее иажна, чем. валример, возможность выполнения летальной проверки типов данных В ш*-ледкем случае может использоваться явное задание тегов.

См. также Е.2.9.1, £ 2.9.2, Е.2 11 I и Е 2.11 2.

E2.ll Выборочный тип

80

Страница 86

ГОСТ Р ИСО:МЭК Ш4-9&

Е.2.11 1 Выборочный тип (CHOICEy следует использовать для прсдстаме-. НИИ переменной. аыбирасной и? совокупности переменных, количество которых известно и невелико Каждая переменная из упомянутой совокупности идентифицируется с помощью контекстно-зависимого тега.

Пример

Fileldent.ffer :: = CHOICE IrelativeName |0) IMPLICIT VislbleStnng,

— имя файла (например. «MarchProjjrcssRcpOrl») absoluteNamc |l) IMPLICIT VlslbkString.

--имя файла и содержащий »то имя каталог

—    — (наври мер, <<:WlUtams>AlafchProg’ressReoort») scnatNumber 12] IMPLICIT INTEGER

--идентификатор, присвоенный файлу системой--|

Е.2.11 2 Выборочный тип (CHOICE) следует исполыовать также для представления переменной, выбираемой из совокупности переменных, состав которых с большой вероятностью Ov.ver шн пт i-с я при переходе ог одной версии протокола к следующей версии Каждую переменную из упомянутой совокупности следует идентифицировать с помошмо контекстно-зависимого тега.

Пример

Filclde.tlifier :. - CHOICE ' {rclativcNante (0} IMPLICIT Vislble.StrinK.

----имя файла (например. «MarchProgressReport»)

abSolutcNsri* fj] IMPLICIT Vis'bleSlriUR,    4

—    - - имя файла и содержащий vro имя каталог

—    -- (например. «<Wi'.l!ams>MarchPfogressRcport»)

—    другие формы идентификаторов файлов ост дилены

--для; дальнейшего исследования - —    )

Е 2 11.3 Каждому элементу, чье налаачеиис не очевидно из его типа, следует присвоить ссылочное имя.

Пример

FileldentifK-r . - CHOICE {reialiveNan»e [0| IMPLICIT VisibleString,

—    — имя файла (например. «MarchProgressReport») absoiutcNamc [|| IMPLICIT VisibleSlring,

--имя файла и содержащий зчо имя каталог

например. « < \Vi*<jairc$> MO'ebProgressRepon») senalKumbef {2j ILLICIT INTE-C.ER *- — идентификатор, присвоенный файлу системой -- — J

Е.2.11.4 В случаях, когда в некотором конкретном применении настоящего стандарта нормой является неявное задание тегов (го есть с указанием «IMPLICIT») и планируется переход от использования одного типа к использованию нескольких типов, рекомендуется использование выборочного типа (CHOICE), состоящего из одного варианта Этим исключается возможность того, что будет иметь место неявное задание тегов, н таким образом облетаете» переход к использованию нескольких типов.

Пример

Greeting : —{APPLICATION 12] CHOICE (VislbleString) в будущем предполагается переход к Greeting :: -= [APPLICATION 121 CHOICE iVisiblcString,

Voice    J

E.2.I2 Се лек г и n н ы А тип

E 2.12.1 Селективный тип елицует использовать для представления перемен-

Страница 87

ГОСТ Р И СО/М ЭК 8S24-W

вой. тип которой является типом некоторого варианта в определенном ранее выбеюочиом типе.

Е2122 Пусть дано определение PiloAttrabute :: = CHOICE {datc-!ast used INTEGER, lilc-name Visible String) тогда возможно следующее определение CurrentAl tributes ::    SEQUENCE

(date-last-used <FtleAttribute.

Jile-name< FileAttribute) с возможной записью значения {date-last-used 27. file name «PROGRAM»}

Возможно также следующее определение.

AttributeList :: — SEQUENCE (tirst-attribufe daie-last-used< FileAttribute. second attribute file-name< FilcAttribuIe) с возможной записью значения <first-attribute 27, second-attribute «PROGRAM»)

E.2.13 П рои а вольн ы й тип

Е,2 13.1 Произвольный (ANY) тип следует использовать для представления переменной, тип которой не задай иди задан я другом месте с иомощью нотации АСН I

Прим ер

McssagcContcnts :: = ANY

--элемент данных, тип которого определен с помощью

нотации АСН.1 за рамками настоящего стандарта E2I4 Внешний I и и

E2I4I Внешний (EXTERNAL) тип следует ислоль-ювать для представления переменной, тип которой не задан или задан в другом месте без ограничений

на используемую дл» зтоп» нотацию.

Пример

FileContcnts : : - EXTERNAL

DocumcntList :: = SEQUENCE OF EXTERNAL

E.3 Пример использования макронотации

Предположим, что желательно иметь обозначения для определении типа следующего вида:

PAIR TYPEX = ...TYPEY - ... допускающие запись соответствующего значения в виде (X------ Y= —---)

где ... и-----означают, соответственно, любой тип АСН I и соот

ветствующее значение

Такие макрообозначении типа могли бы быть использованы для определения типоа и .значений, как показано ниже:

TI =PAIR TYPEX-INTEGER TYPEY = BOOLEAN T2 : =PA1R TYPEX —VisibleStrinjr TYPEY-TI Тогда значение типа Tl может иметь вид (Х“Э, Y-TRUE) а .значение типа Т2 может иметь вид:

(Xub«Name>. Y — (X»*4. Y = FALSE))

Страница 88

ГОСТ Р ИСО/МЭК 8824—93

Для обеспечении «их обозначений, которые могут рассматриваться как расширение базовой нотации ACH I, может быть использовано следующее макроопределение

PAIR

MACRO :: - BEGIN TYPE NOTATION :: -cTYPEX*

«=*

type (Local-type-i)

—    - Здесь ожидается описание любого типа

-    » ACH.I. которое будет присвоено --переменной Local-typc-l;

«TYPEY»

type (Local-type 2)

Здесь ожидается описание nropoto типа - ACH.I. которое будет присвоено

-    - переменной Local -lvpo-2;

VALUE NOTATION .: =

«(»

«X»

€ш-х >

value (Local-value-1 Local-type-1)

Злееu ожидается описание значения uiiia,

—    определяемою переменной Local-typc-l, которое будет лрксногио жреМсииоК l.ocal-value-1;

«У»

ts>

value (Local-value-2 Local-lvpc-2»

Здесь ожидоегся описание «иичеиия тина, определяемого переменной l.ocal-typi-2,

- когорт будет присиоеио переменной Lof?l va.uo-2:

<VALUE SEQUENCE (LocaMype I.

Local-typc-2)

: -• {Local-valuc-l. Local-value-2)>

Эго «вложенное определение» возвращает окончательное значение, являющееся значением последовательности.

-- -■ состоящей и» двух типов

«)»

END

В атом примере гни возвращаемого значения (в смысле базовой нотации ACH I) не зависит от подставляемого значения, ио зависит от подставляемого тяпа. В друга* случаях т-нп может либо полностью определяться макроопределением, либо может зависеть от подставляемого значения. Отметим, тем ис мс-иее. что во всех случаях для определения типа возвращаемого значения следует рассматривать продукцию «VALUE NOTATION*. Продукция «TYPE NOTATION» просто определяет синтаксис для определения типа и устанавливает начальные значения локальных переменных, используемых при анализе подставляемой нотации значения.

83

Страница 89

ГОСТ Р И СО М ЭК 8824-Ю

Е 4 Использование нотации лл* определения абстрактных синтаксисов

Е.4.1 Для использования услуг уропия представления (ГОСТ 34 971) требуется описание значений, называемых значениями данных уровня представления. и группирование »тих значений в множества, называемые абстрактными синтаксисами Каждому из >тих множеств присваивается имя абстрактного синтаксиса, относящееся к оиредеденному и ACH I типу «идентификатор объекта»,

Е.4.2 Нотация ACH.I может быть испольлована в качестве единого средства при описании значений данных уровня представления и их группировании в поименованные абстрактные синтаксисы.

Е-4.3 Для простейших случаев такого использования в нотации ЛСН.1 может найтись единственный тип, такой, что все значения данных представления, составляющие поименованный абстрактный синтаксис, будут значениями этого типа. Как правило, этим типом является выборочный тип. и все значения дам* пых представления будут относиться к различным типам-вариантам и< лтого выборочного типа В яом случае рекомендуется оформить определяемые данные в виде модуля, п котором первым определяемым типом будет вышеупомянутый выборочный тип, а да.мч1 будут приведейы определения тгх (не универсальных) типов, ил которые имеются прямые или К Ос пенные ссылки в определении выборочного тира.

Примечание. Это ис означает, что исключаются ссылки на типы, определенные и других модулях.

Е 4 4 Ниже приведен пример текста, который мог бы быть частью некоторого стандарта, относящегося к прикладному уровню Для исключении неоднозначности конец примера явно выделен строкой «Конец примера».

Пример

ISOxxxx—уууу DEFINITIONS :: =-

BEGIN

PDU ::    CHOICE

(connect-pdu.....

data pdu CHOICE

......)

END

Настоящий стандарт присваивает следующее значение ACH.I — идентификатор объекта

{йод standard хххх abstracl-syntax (I)) в качестве имени абстрактного синтаксиса для множества значений данных представления. каждое из которых является значением типа данных ACH.I «ISOxxxx—уууу PDU». Соответствующим описателем объекта АСН.1 устанавливается

« • • • .......... ■ ■ »

В качестве имени синтаксиса передачи, используемым вместе с определенным выше именем абстрактного синтаксиса, могут использоваться значения ACH I для идентификатора объекта и описателя объекта.

(joint-iso-ccltt asnl (1) basK-encoding (I))

н

«Basic Encoding of a single ASN 1 type»

(присваиваемые информационному объекту в ГОСТ 34.974.

Конец примера

Е 4 5 Стандар т может также потребовать для этого абстрактного .синтакр«а

Страница 90

ГОСТ Р ИСО мэк 8824-W

обязательной поддержки сьитакгиса передачи, получаемого применением правил кодирования

Jioint-iso-ccitl asnl (1) basic-encoding (1))

£.5 Подтипы

E.&.I Подтипы следует использовать для ограничения значений существу» щего типа множеством значений, допустимых к конкретной ситуации.

• Примеры

AtoniicNuinber : = INTEGER (I.. IСИ)

TouchTortcSlring — lAoString (FROM («0» ; «!> ; <2» \ «3» ! «4» ; «5» ;

«6» , */•» j «8» ! *9» ! **» j    «SIZE(I    .S3))

ParaiitclcrList •: -» SET S1ZE(0..63) OF Parameter

SmallPrlnic :: - INTEGER (2 i 3 ; 5 | 7 J II 1 13 \ 17 ; 19 Г 23 | 29) E.S.2 В случаи*, когда два нлн более типа имеют много общего, следует рассмотреть возможность явного определении и качестве исходного ткпа их об Micro порождающего типа к использовать механизм образования подтипов для определения требуемых типов. Этот подход подчеркивает взаимосвязь и общность типов и является привлекательным (хотя к необязательным) подходом к развитию типов. Такой подход облегчает, таким образом, реализацию обработки значений этих типов.

Пример

Envelope : t- SET ftypeA ТуреА,

typeB ТурсВ OPTIONAL. typeC TypeC OPTIONAL)

-• — общий порождающий тип ABHnvelofK' .: - Envelope (WITH COMPONENTS

typeB PRESENT, typcC ABSENT))

—    - — где тип typeB должен всегда  присутствовать, а тин typeC

—    — должен отсутствовать

AGEп\elope    : -    Envelope    (WITH    COMPONENTS

(----

typeB ABSENT. typeC PRESENT))

—    где тип typeC должен всегда  присутствовать, а тип typeB

—    — должен отсутствовать

Два последних определении могут быть также записаны в следующем виде: ABEnvelope    :    Envelope    (WITH    COMPQNF.NTS(typcA. typeB))

AC Envelope    :: -    Envelope    (WITH    COMPONENTS{typcA, typeC))

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

Е53 Механизм подтипов следует исполкзоват». для частичного определения значения, например, протокольного блока данных, с которым будет производиться сравнение а тесте конформности, при условии, что этот тест конформности анализирует только некоторые компоненты ПБД.

Пример

Пусть задан протокольный блок данных PDV :: ■= SET

(alpha JO) INTEGER, beta 11) lA5String OPTIONAL, gamma [21 SEQUENCE OF Parameter, delta f3| BOOLEAN)

85

Страница 91

ГОСТ Р ИСО.МЭК 8824-М

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

TcslPDU :: = PDU <WITH COMPONENTS

delta(FALSE). alpha<MlN . . . <0)>)

Если к тому же требуегся, чтобы значение тнпа-комионснта lA&String, beta, обязательно присутствовало н имело длину либо 5, либо 12 знаков, может быть использовало описание

FutherTestPdu ;: = TcstPDU (WITH COMPONENTS {----

beta tSIZE^ \ 12)) PRESENT})

E.54 Если тип данных общего назначения был определен как SEQUENCE OF, следует использовать механизм образования подтипов для определения подтипа. являющеюся частым случаем общего типа.

ТехЬЫоск ;: - SEQUENCE OF VisibleStrlng

Addrcs Tcxt-Ыоек <SIZE(I . 6» : WITH COMPONENT(SIZE(l .32))) E.5.5 Для образования новых подтипов из существующих подтипов следует использовать вложенные подтипы.

Пример

Months : : = ENUMERATED {

January (I),

lcbruary(2),

inarch (3).

april(4),

may (5).

june(6),

luly(T).

'    august    (8),

September (9),

october(lO),

november(ll).

dcccmber(12))

First-quarter :: = Months <

January [ fcbrtiary ; march)

Second-quarter :: -= Months (

april ) may J iune)

Third-quarter :: = Months (

July • august J September)

Fourth-quarter :: » Months (

octobcr | november J december)

First-half :; *-Months <

INCLUDES First-quarter J INCLUDES Sccondquarter)

86-

Страница 92

ГОСТ Р НСО/МЭК 8S24-W

Sccond hall :: — Months <

INCLUDES Third-quarter ,

INCLUDES Fourth-quarter)

ПРИЛОЖЕНИЕ h Справочное

СВОДКА СИНТАКСИСА НОТАЦИИ ACH.I

Перечисленные ниже элементы определяются в разделе 8

СсылкаНаТил

INTEGER

BEGIN

И.ичи.фнкитр

BIT

END

Ссылка НзЗиачеинс

STRING

DEFINITIONS

СсылкаНаМодуль

OCTET

EXPLICIT

Ком.чеигзрий

NULL

ENUMERATED

Пусю

SEQUENCE

EXPORTS

Число

OF

IMPORTS

Ь сгрока

SET

1i-строка

IMPLICIT

REAL

<•-строка

CHOICE

INCLUDES

ANY

MIN

{

EXTERNAL

MAX

)

OBJECT

SIZE

<

IDENTIFIER

FROM

OPTIONAL

WITH

DEFAULT

COMPONENT

(

COMPONENTS

PRESENT

)

1

UNIVERSAL

ABSENT

APPLICATION

DEFINED

|

PRIVATE

BY

TRUE

PLUS INFINITY

BOOLEAN

FALSE

MINUSINFINITY

Ниже приведены продукции, используемые и настоящем стандарт*; терминал-ними сямводами продукций являются прицеленные пышс элементы. ОпределеимеМодудя :: =

ИдеягифихаторМодуля DEFINITIONS ТсгнПоУ молчанию

BEGIN*

ТелоМодуля

END

ТегиПоУмолчанию =

EXPLICIT TAOS :

IMPLICIT TAGS : пусто

ИдекгификаторМодулн :: -=

СсылкаНаМодуль

ПрнсвоенныйИдекткфикатор    ?

Страница 93

ГОСТ Р ИСО/МЭК 8824-93

ПрисвосиныйИлектификатор .: == Значрннс-ИдснтификагорОбыкта ! пусто

ТслоМодуля : . —

ВыходныеСсылкн ВходяысСсылкн Список Присвоений пусто

ВыходнысСсылки :: *=

EXPORTS ВыходимеСимаолы \ пусто

1\ыходниеСнм»|>лы • »

СписокСкызолов ] пусто

Входные Ссылки :: =

IMPORTS ВходиыеСимволы ; пусто

ВкошисСиммли ;: “*

СписокСнмволовИзМодуля ; пусто

СпиеокСммводовИзМолуля .. = СкыиолыИэМодуля списокСимоолоеИзМодуля ; Снм&олыИзМодуля СимиолмИзМодуля :: =

CnHCOKCHNBO.ioBFRO.M ИдектяфикзторМодуля СпксокСимволоо ;:

Символ. СписокСкмиолов | Символ Символ : : -*■ СеилкаНаТин! СеылкйНаЗиачгиие СпнсокПрневоений :;»» Присвоение

СписокПрис^иий Присвоение

Присвоение .: —    ппа    |    ПрисвоениеЗиаченвя

ВнгшняяСсылкаНзТип : г •-

СсылкаНаМодудь

СсылкаНаТип Вж'ШКяяСсылкзНаЗиачснис ::

Ссылка НаМодуль

Ссылка Назначение

Определен» ыйТил ’ ВпешпяяСсылкоНаТип i СсылкаНаТип

ОпредсдеиносЗваченне ■: — Виси-'няяСсылкгИаЗнэчсние СсылкаНаЗначение ПрисноринеТипа : «-СсылкаНвТип

Тип

ПрисвоениеЗначения : : =СсылкаНаЗиачение Тип

Значение

Тип : -- ВарсгннМГЛГчп I ОпредслеинымТип ! Подтип Вс1р«мыинТнп : • <- ВулевскийТии

ЦслочислснныйТии

ТмпСтрокаБигов

ТипСтрокаОктс-тов

ВырэждсиныйТип

Т—


Страница 94


m Cto


£ I!


UJ


■J2 Z<&x -<u.waj __ ш-oo-i5

о£№Щ

gflfSSyc s

3 1 Я


о £ Н х У j? Л v

х зло * х 5 «I « J

I |lii

I S

u jp X 2 V X

s|l;|l

>. J; X = 2 x

-.(<lffl Ш 14


| * §22

f— <r> ?

■X V Ь

* s ^ а: к к К» i

SI U §

>> >.JS^

ашя


1


j! £ J 2

Г n


C S 1 i S 1

и E


Страница 95

ГОСТ 9 ИСО/МЭК <«24—93

ЧислоСоЗнаком

ЦелочнсленносЗначсние

ПеречислительныйТип

Перечисление

ПеречислительиоеЗначение

Тнп-ДсйствнтелъноеЧисло

Значоние-Действнте.чыюсЧисло

Чнс.|1-)1н1*-д«'йсгиит«-льн<)е3нач1н)и'

Мантисса

Основание

Порядо*

СпеииальносДсйс-ТбктгльноеЗначенне

Тип-Строка Бйт

СписокПоимеиова иных Бит

ПоимсиовэннмйБит

Значсние-СтрокаБит

СписокИдентифика горов

Тиа-Сгрок аОкт £-тоа

ЗначеииеСтрокаОктетоп

ВырожденныйТнп

ВырожденноеЗначеиие

Тип-Послсдоватсдьиост*,

СписокТяпоа-Компонеюов

Тип-Компонент

: •• Число ) - Число . : =■ ЧислсСоЗнаком | Идентификатор •: - ENUMERATED (Перечисление)

::    Поимевованвоемисло

ПоимсиовакноеЧисло, Перечисление :: =с Идентификатор :■ - REAL

I 1 ОС

Ч мслеиноеДействительноеЗначение ; СпецнальносДсйствительносЗнячсние

{Мантисса, Основание, Порялок) ! О1 1: — ЧислоСоЗнаьом :: — 2 • 10 .: = ЧислоСоЗнаком

PLUS—INFINITY ! MINUS—INFINITY - BIT STRING

BIT STRING (СлисокПоимснован ныхБитов)

: • — ПонмеийланнмйЬиг СписокПонмсноваиныхБит. Поименованный Бит : — Ид(-итифик»тор{ЧислО) Идентификатор (ОврсделсииоеЗннчсннс)

.: — b-строка | h-етрока (СпнсокИдситифнкаторов) ! (}

.: =<е Идентификатор СписокИдситнфииаторов. Илентнфикато :    OCTET STRING

•- «- b-строка I h-строка :: - NULL -: - NULL

skQUENCE|CnKCOKTHiioa-Компонснтов)    !

SEQUENCE[ >

СписокТипов-Компоненте*. Тип-Комгюпеот : : = ПоимснонаннийТип

Понменованный'Гии OPTIONAL ! ПоимсиованныЛТип DEFAULT Значение ; COMPONENTS OF Тип


3 качение-П oc-wjioea телыюс т ь

СпнсокЗначений-Компоныпов | ( )

.: _i Поименованное Значение    [

СписокЗначсний-Компонентов. ПонмсноьанноеЗначенне Тип-ПослодовлтельностиИз    •: - SFQUFNCE OF Тип ! SEQUENCE

Значение-ПоследозатсльиостьИз    .: - (СпнсокЗначеннй) | ( )

СиисокЗначеииЙ

СйисокЗначсиий-Компонеитой

Значение | СписокЗизчспнй, Значение

SET( Список Т Ииое- Кпмиож'Мгоп) SET { )

Т ип-М вожес тбо

Страница 96

ГОСТ Р ИСО/МЭК &824-Ю

:. {СпнсокЗиачсний-Комиоиентов} [ {\ • — SET OF Тик { SET : — (СписокЗначеинй) J { }

Значение Множество

Тиц-МножоствоИз

Зиачснис-МможеспшИл

ВыборочиыйТип

СписокТяиоаВариакгов

ВыборочноеЗначение

СсдектиняыйТии

Сс.тектнвиосЗнвчгние

ТегнрованныАТнп

: — СН01СЕ{СпвсокТиао8Варигито«|

?; — ПоимсиоваикыйТип    |

СлисокТнгюв*Вариантов. ПоямскованныйТин :: — ПоимсноминоеЗиаченме Идентификатор <Тип ■ ПоименованиоеЗначение ::    Тег Тип J

Ter IMPLICIT Тип ,

Tor EXPLICIT Тип . ^ [Класс НоыерВКлассе)

Тем

ПоиерВКлвссс

Класе

Тегирован иосЗначенш-Прьи.чйольиыЛТии

Произвол ьнси-Значешк-Тнп-ИдснтифнкагорОбьекта ЗначсниеИдОбыкта

- - — Число ОнрсдедснносЗначсиис : - UNIVERSAL i APPMCATION i PRIVATE ; Пусто :: — Значение

:. --- ANY : ANY DCFINED BY идентификатор :: - Тип Значение : ~ OBJECT IDENTIFIER : — {СлисокКоипоымгтадИдОбъекта) [ (ОпределеиноеЗиачение СписокКоипонентовИдОбъекта) СмиеокКомиоиеитовИлОбъекта    —    КоипоиеНТЙдОбмгхаа ;

КомпонгнгИдОбъекта СпнсокКомпоиеитонИдО<гьехта

ИмсмнаиФорма J ЧнслозаяФорма Смешанная Форм а Идентификатор Чиста', ОоредслениосЗвачсиас Иденти4 СсылкапаТил

Компонент И дОбъскта

ИмсннаяФормв ЧнсловвяФорыа СмешаннаяФорма Тнн-ОфокаЗиакоп Значение СтроквЗнаков ОбшеупотрсбительныйТип

с строка СсылхаНаТип

Перечисленные ниже типы «строка анакон» определены в разделе 31 NtimcricSmng    VisibleString

PrintabieStrmg    ISOWfcSlring

TeletexSlring    !A5String

T61 Strl ng    Ora pbicSi ring

Vidco*cxSlring    GeneralStrmg

Общеупотребительные типы, имена которых перечислены ниже, определены в разделах 32—35:

GenerallzedTime    EXTERNAL

UTCTime    ObjcctDeicriptor

Приведенные ниже продукции используют в разделах 35—37 Полтин :. -=.

ПооождаюишйТин Спецификам) яПодтииа ;

SET ОфЭннченнеРа пкра OF Тип \

SEQUENCE ОграничениеРиэмерз OF Тип ПорокдающкйТио:: -» Тия СпешгфпкаакяПодпгаа :: =

(ПоднножеетвоЗначенийПодткпа

СлисокПодмюжествЗначенийПодтмаа)

СлисокЛодмножестаЗиачсиийПодтипа ; ■ —

ПодмиожестаоЗначенийПодтипв

91

Страница 97

ГОСТ Р и СО М ЭК Ш4-ЙЗ

СписокПодииож**IпЗиачеинйПодтнпа ! пусто

ПодмиожесгвоЗначеннйПодтнпа :. —

ОдноЗиачеиие i ВлОЖеИИЫЙПо.'ИЬН J ,    ДизпазонЗначеннй    J

Разрешенный Алфави! ОграничекиеРазмерв ОграииченииВиутрениихТиноп ОлноЗначеиие . = Значение В.тожокмыйПолтип :: *■*■ INCLUDES Тип ДнапазоиЗначений : : = НнжняяГраннца . . ВерхкяяГраиниа НижпяяГраннии :: - Нижнсч'ГраничиосЗнзчеиис ;

ИнжнсеГрэничноеЗначеиие <

ВерхняяГранииа - :    Верхнее! раничжк-Значсмие j

< ВерхнееГраничносЗначенис НижигсГрэничиогЗиачеиие : • Значение , MIN Вер.хнееГраничное Значение .: *•- Значение МАХ ОграикчсниеРа^мсрз •• —> SIZE СпсиифкканияПодтипа РазрешснныйАлфавнт : =-. FROM СпшификацниПодтина ОграннчснияВнутрсннихТипов :: =»

WITH COMPONENT О'раначеннеОлногоТмпа WITH COMPONENTS ОгрэмичсиияНескалышхТнпов ОграничениеОдногоТипэ :; = СпецификаиииПодтипа ОграничснияНесколькихТипов : «=

ПоянаяСиоиифихацик | ЧагтячнаяСпсцификацня ПолнаяСпецификаиия • : — {ОграничгнияТнпа}

ЧлстичнаяСпедкфнкаиия ; =- {.    ,    ОтяниченияТипа)

Ограничен ис Гнпа : : — ПонменозанносОгрзяиченнс !

ПоимеиопанноеОграничеиис ОграиичснииТипа Поикеио8аи1ихО>раинчсии1- ; — Идентификатор Ограничение !

Ограничение

Ограничение •: •— ОгрзничсниеЗмачения ОгоаинчениеПрисутствия ОгрзничеиисЗначения :: = СпеиифиьацияПодтипа { пусто ОграннчениеПрнсутсгиия : : — PRESENT ! ABSENT ! пусто ;

OPTIONAL

Перечисленные ниже дополнительные элементы опрелелены е разделе А.2 и используются в махронотаини.

макроссылка    «number»

СсылкаНаПродукито    «empty*

ЛокальнаиСсылкаНаТип    MACRO

■ИокзльнаяСсылкаНаЗначенне    TYPE

« ! »    NOTATION

>    VALUE

а-строка    value

«string*    type

«identifier»

Ниже приводятся продукции, используемые в приложении А; терминальными символами этих продукций являююи приведенные пыше элементы, л также •»**-менты, перечисленные в начале настоящего приложения. '

Макроопределение г • «• макроссылка MACRO

: am >    ,

СодержаннеМакро

Страница 98

ГОСТ- »> ИСО'МЭК ША-9Х.

СодержаниеМакро .: =

BEGIN ТелоМакро END ! мэкроссылка !

ВиешияяМакроссылка ТслоМакро • • - ПродукцияТила

ПродукиияЗиачсния ВспомогатслькысПродукиии ПродукцняТнпа :: —•

TYPE NOTATION «::*=*

СписокВарнантовМахро ■

ПродукцияЗначении ::

VALUE NOTATION «::=»>

СпксокВариантовМанро Вспомог атедьныеЛролукцми .: =

СпксскПродукиий ,    •

empty

СписокПродукций •: г-

Иролукинм    ■

СиисокПродукоий Продукция Продукция ; Ссылка НаПродукцию

СпнсокВариантовМакро ВнсшияяМакроссылка :: —

СсыдкаНаМоду ль. макроссылка СпнсокВариантовМакро: г «

ВариантМакро    ;

СписокВарннитооМакро

« I »

ВариантМакро ВариантМакро :: — СписокСкмволов СписокСим волов г ■ я»

С имдольныйЭлемекг '

СписокСим волов Си у иольиыйЭлемеет.

Символьный Элемент :: =

ОпределчтсСкмвола J Вложс ы н оеОл р едел енне МакроТип • — ЛокальнаяСсы-маНаТип !

Тип

ОпродсленясСимвола :: —

«а-строкз*

СсылкаНаПродукцию «siring»

«identifier»

«numbei»

«empty» lype

lypc {ЛокилькаяСсыльаНаТип) value (МакроТип)

value (ЛокальнаяСсылкаНаЗиачсмие МакроТип) value (VAI-UE МакроТип)

ВложсвносОпределеиие ■. •= <СписокВложенныхОпредслений>

43.

Страница 99

ГОСТ Р ИСО'МЭК Ш4-М

СиисокВложс«ныхОл{К'дгж‘11М() --- ВложсиносОпрелслсшн' ;

СпнсокВложенныхОпрсдслснкй В ложекносОпрсделеи яе ВложенноеОирг-дс.м-ние :: — ЛокальноеПрисвоиннсТнпа J

ЛокальиоеПрнсоосиисЗиачсиия ЛсжальноеПрисвосниеТипа : « ЛокальнаяСсылкаНаТип «:: =*»

МокроТип ЛокалькоеПрксвоеннсЗначения : : —

ЛокадьнаяСсылкаНаЗиачсвие

МакроТип

«: : = »

МаироЗнмении МакроЗначенис : - а= Значение ;

ЛокзльнаяСсылкаНаЗна'и-мт;

•■94

Страница 100

ГОСТ Р ИСО'вЭК 8824-И

УДК 681.324.006.354    П85

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

ОКСТУ 4002

95

Страница 101

Редактор 0 П. Огурцо*

Т?хм>гчбсхк& рсдахтор В. Н. Пруткова Корректор А. С. Черноусоаа

da.*» и и*йор 25-01 И Поал * set. 04.03 5И ¥<л. dcv. я. S.BI. Уел. кр.-отт 5.9«.

Уч.-мд. л. 630. Тир. 32* С I06T

Ордеил <3.<ах Почма> Издательстто стандартов. 107076. Мооша. Колодеibu А пео К. Калужская ?и«ограф*я стллдартоо. ул. Мосаокха*. №. 3*#. 223