Откройте актуальную версию документа прямо сейчас
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Приложение Е
(справочное)
Замененные характеристики
Ряд характеристик, включенных в предшествующую редакцию настоящего стандарта (а именно в ГОСТ Р ИСО/МЭК 8824), были заменены и теперь не являются частью АСН.1. Однако они могут встретиться в некоторых существующих модулях АСН.1. В настоящем приложении описаны эти характеристики и то, как их возможности могут быть реализованы с использованием заменивших их характеристик.
Е.1 Использование идентификаторов является обязательным
Нотациями для NamedType и NamedValue первоначально были:
NamedType : : = identifier Type | Type | SelectionType
NamedValue : : = identifier Value | Value
но теперь они изменены на:
NamedType : : = identifier Type
NamedValue : : = identifier Value
так как прежние приводили к двусмысленной грамматике.
Идентификаторы могут быть добавлены к поименованным типам NamedType в старых спецификациях АСН.1 без влияния на кодирование типа (хотя изменения АСН.1 будут необходимы для всех использований соответствующих нотаций значений). Такие изменения могут быть даны либо в сообщении об ошибках, либо как часть новой версии модифицируемого стандарта.
Е.2 Выборочное значение
Нотацией значения для выборочного типа первоначально была:
ChoiceValue : : = NamedValue
NamedValue : : = identifier Value | Value
но теперь она изменена на
ChoiceValue : : = identifier ":" Value
так как прежняя приводила к двусмысленной грамматике.
Е.3 Произвольный тип
Произвольный тип был определен в ранних версиях настоящего стандарта.
Обычно произвольный тип использовался для того, чтобы оставить "дыру" в спецификации, которая должна быть заполнена некоторой другой спецификацией. Нотацией была "AnyType", которая допускалась в качестве альтернативы для "Туре" и определялась как:
AnyType : : = ANY | ANY DEFINED BY identifier
Нотация значения для произвольного типа была
AnyValue : : = Type Value
хотя позднее она была изменена на
AnyValue : : = Type : Value
так как прежняя приводила к трудностям при машинной обработке АСН.1.
Настоятельно рекомендовалось использовать вторую альтернативу нотации. В этой альтернативе (единственной возможной, когда произвольный тип был одним из типов компонентов множества или последовательности) некоторый другой компонент множества или последовательности (с указанным идентификатором "identifier") должен был указывать, своим целочисленным значением или значением "идентификатор объекта" (или выбором из них), фактический тип, управляющий произвольным компонентом. Отображение таких значений в конкретные типы АСН.1 могло бы выглядеть как некоторая "таблица", образующая часть абстрактного синтаксиса. При отсутствии "DEFINED BY identifier" (первая альтернатива нотации) в нотации не было бы указания, как может быть определен тип поля. Это часто приводило к спецификациям, в которых "дыра" продолжала существовать даже на стадии, когда предполагалась реализация.
Теперь произвольный тип заменен возможностью спецификации классов информационных объектов и последующим указанием полей классов информационных объектов в определениях типов (см. ГОСТ Р ИСО/МЭК 8824-2). Так как поля могут быть определены таким образом, чтобы допускался произвольный тип АСН.1, то обеспечивается основная возможность - оставлять "дыры" в спецификации. Однако новая характеристика допускает спецификацию "табличного ограничения", в которой конкретное "множество информационных объектов" (соответствующего класса информационных объектов) явно указывается как ограничение типа. Тем самым обеспечивается то, что раньше обеспечивалось конструкцией "ANY DEFINED BY identifier".
Кроме того, предоставляется некоторое предопределенное использование новых возможностей (см. ГОСТ Р ИСО/МЭК 8824-2), которое соответствует различным, обычно встречающимся образцам использования произвольного типа. Например последовательность, содержащая идентификатор объекта и произвольный тип, ранее часто использовавшаяся для передачи произвольного значения вместе с идентификацией его типа, может быть описана как
INSTANCE OF MUMBLE
где MUMBLE определяется как класс информационных объектов (а не как тип АСН.1):
MUMBLE: : = TYPE-IDENTIFIER
Эта нотация приводит к тому, что конструкция "INSTANCE OF MUMBLE" должна быть заменена идентификатором объекта для объекта класса MUMBLE вместе с типом, указанным идентификатором объекта. Пример см. в С.2.18.
Конкретные пары идентификаторов объектов и типов определяются как информационные объекты класса MUMBLE, а если требуется, то могут быть определены их конкретные множества и использованы для ограничения конструкции INSTANCE OF таким образом, что могут встречаться только объекты этого множества.
Макровозможности часто использовались как полуформальный способ определения таблиц информационных объектов для управления ассоциированным использованием произвольного типа и заменены новыми возможностями.
Е.4 Макровозможности
Макровозможности позволяли пользователю АСН.1 расширять нотацию путем определения макросов.
Основным использованием макровозможностей было определение нотации для спецификации информационных объектов. Теперь такая возможность включена непосредственно в АСН.1 (см. ГОСТ Р ИСО/МЭК 8824-2) без необходимости совершенно общей (и, соответственно, опасной) определяемой пользователем нотации.
Кроме того, единственным другим использованием нотации является, видимо, определение выражений, которые должны применяться с некоторыми параметрами для того, чтобы быть полностью определенными типами АСН.1. Теперь это обеспечивается более общими возможностями параметризации (см. ИСО/МЭК 8824-4).
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.