ГОСТ Р ИСО/М ЭК 8824-1-2001
f
END
ISOxxxx-yyyy-Abstract-Syntax-Modulc {iso standard xxxx ansl-modulcsDEFINITIONS : : ■=
BEGIN
IMPORTS YYYY-PDU FROM ISOxxxx-yyyy {iso standard xxxx ansl-modulcs (...) yyyy-pdu (...)}:
- - В настоящем стандарте определен следующий абстрактный синтаксис:
YYYY-Abstract-Syntax ABSTRACT-SYNTAX:: -
{YYYY-PDU IDENTIFIED BY yyyy-abstract-syntax-object-id)
yyyy-abstract-syntax-object-id OBJECT IDENTIFIER ::■=•(
iso standard yyyy (xxxx) abstract-syntax (...)}
- - Соответствующим описателем объекта является
yyyy-abstraci-syntax-descri ptor ObjcctDcscnptor : : -» "............*
- - Значения идентификатора и описателя объекта АСН.1:
- - идентификатор объекта правила кодирования,
- - описатель объекта правила кодирования.
- - присвоенные правилам кодирования в ИСО/МЭК 8825-1 и ИСО/МЭК 8825-2 могут использоваться как
- - идентификатор синтаксиса передачи вместе с настоящим абстрактным синтаксисом.
- - ISO.xxxx-ww-Abstract-Svntax
END
С.3.6 Для того чтобы гарантировать взаимодействие, стандарт может дополнительно потребовать обяза
тельной поддержки синтаксиса передачи, полученного применением правит кодирования, указанных в моду ле
абстрактного синтаксиса.
С.4 Подтипы
С.4.1 Подтипы используются для ограничения значений существующего типа, допустимых в конкретной
ситуации.
П р и м е р ы
AtomicNumbcr : : -* INTEGER (1..104) - - атомное число
Touch I’oncSlring : : » lASStnng - - строка набора номера
(FROM ("OI23456789" | "Н" | *»’)) (SIZE (1.. 63))
ParameterLisT : : = SET SIZE (I.. 63) OF Parameter - - список параметров
SmallPrimc :: ■*INTEGER (2 | 3 15 17 | 11| 13 j 17 | 19123 j 29) - - малое простое число
C.4.2 Расширяемое ограничение подтипа используется для моделирования типа INTEGER, множество
допустимых значений которого мало и четко определено, но может быть расширено.
П р и м е р
SmallPrimc : : = INTEGER (2 | 3, . ..) - - Первая версия SmallPrimc
в предвидении:
SmallPrimc : : INTEGER (2)3
.........
5 | 7 [ 11) - - Вторая версия SmallPrimc
и позже:
SmallPnmc :: » INTEGER (2 | 3
.........
5 | 7 | 11| 13 | 17 | 19) - - Третья версия SmallPrimc
П р и м е ч а н и е — Для некоторых типов одни правила кодирования (например PER) обеспечивают
высокоопгимизировакиое кодирование значений для ограничения подтипа корня расширения (т. е. значений.
стоящих до "__") и менее оптимизированное кодирование значений для ограничения подтипа расширяющих
дополнений (т. с. значений, стоящих после ".. .*). тогда как при других правилах кодирования (например
BER) ограничения подтипов нс влияют на кодирование.
(2.4.3 Когда два или более связанных тина имеют существенную общность, следует рассмотреть возмож
ность явного определения этой общности как порождающего типа и введения подтипов для отдельных типов.
Такой подход делает очевидными взаимосвязь и общность и продолжает их поддерживать для типов, имеющих
отношение к делу. Тем самым обеспечивается возможность использования при реализации общего подхода к
обработке значений этих типов.
П р и м е р
Envelope :: ” SET {
typeA Type А.
tvpcB TvpcB OPTIONAL.
typeC TvpeC OPTIONAL }
- - общий порождающий тип
ABEnvelopc : : - Envelope (WITH COMPONENTS
6-2*
79