ГОСТ Р ИСО/МЭК 8825-3—2016
17.6.2 «DifferentialEncodingObject» определяет правила кодирования абстрактных значений, свя
занных с классом руководителя этой нотации, и (отдельно) правила, используемые декодерами для
восстановления абстрактных значений из кодовых комбинаций, которые, как предполагается, созданы
объектами кодирования с классом руководителя.
17.6.3 «SpecForEncoding» применяется кодерами. Декодеры будут декодировать так. как будто бы
кодер применил «SpecForDecoders».
Примечания
1«SpecForOecoders» является, тем не менее, спецификацией кодирования. Он предлагаетдекодерам пред
полагать. что кодеры использовали эту спецификацию.
2 Поведение декодеров, которые декодируют в предположении, что кодер использовал «SpecForDecoders»,
но обнаруживают ошибки кодирования, не стандартизовано.
17.6.4 Объекты кодирования «SpecForEncoding» и «SpecForOecoders» не должны определяться с
помощью ENCODE-DECODE. и любые объекты кодирования, использованные в этом определении, не
должны определяться с помощью ENCODE-DECODE.
Примечание — Это ограничение сделано потому, что в противном случав спецификация смысла
конструкции кодироаания/декодирования стала бы более сложной, не давая дополнительных функциональных
возможностей.
17.6.5 Если «SpecForEncoding» и «SpecForDecoders» показывают одинаковый идентификаци
онный описатель с одинаковым набором значений описателя, то определяемый объект кодирования
(см. 17.1.5) показывает этот идентификационный описатель (с тем же набором значений описателя):
иначе он не показывает описатель.
17.7 Факультативныо возможности кодирования
17.7.1 Продукцией «EncodingOptionsEncodingObject» является:
EncodingOptionsEncodingObject ::<=
И |Я
OPTIONS
EncodingOptionsList
WITH AlternativesEncodingObject
T
EncodingOptionsList ::= OrderodEncodingObjectList
AlternativesEncodingObject ::= EncodingObject
17.7.2 «EncodingOptionsEncodingObject» указывает, что кодер может кодировать (согласно 17.7.6)
с помощью какого-либо «EncodingObject» из «EncodingOptionsList». Все эти «EncodingObject» должны
быть объектами кодирования из управляющего класса.
Примечание — Новые реализации настоятельно рекомендуется кодировать с использованием такого
самого раннего объекта «EncodingObject» из упорядоченного списка, который способен кодировать абстрактное
значение, подлежащее кодированию (см. 17.7.6). Спецификация факультативных возможностей кодирования да
ется лишь потому, что необходимо отразить факультативные возможности, которые обеспечиваются в традицион
ных протоколах, и поддержать различные формы кодирования длины цепочек. Все факультативные возможности
могут, конечно, появляться при декодировании.
17.7.3 «AlternativesEncodingObject» должен быть объектом кодирования любого класса в катего
рии «альтернативы», а кодеры и декодеры должны использовать кодовые последовательности и про
цедуры. указанные этим объектом кодирования, так. как будто бы факультативные возможности коди
рования были кодированы для компонентов экземпляра этого класса. «AlternativesEncodingObject» не
должен содержать спецификации REPLACE (см. 23.1.1). Параметр DETERMINED BY устанавливается
в handle, а также указывается идентификационный описатель.
Примечание — Если «AlternativesEncodingObject» параметризован параметром «поле ссылки», то
определяемый «encodingobjectreference» должен быть параметризован параметром «фиктивное поле ссыпки»,
который используется в качестве реального параметра для «AlternativesEncodingObject».
17.7.4 Все «EncodingObject» в «EncodingOptionsList» должны показывать такой идентификацион
ный описатель, и их наборы значений описателей должны быть непересекающимися.
57