ГОСТ Р ИСО м э к 8824— 93
8
обязательной поддержки сьигакгиса передачи, получаемого применением пра
вил кодирования
>int-iso-cciU asnl (1) basic-encoding (1))
5 П
одтипы
E.S.I
П
одтипы
следует использовать для ограничения значений существую
щего типа множеством значений, допустимых к конкретной ситуации.
• Примеры
AtomicNuinbcr : = INTEGER (I.. 104)
TouchToneString-- lAoSiring (FROM («0» ; «!> ;
<2»
; «з»
\
«4> ; «5» ;
«6» , */•» ; «8»
j
*0» ! »•* ! «4^;»)) «SIZE(I .S3))
Paramclcrlist •; -» SET SiZE(0..63) OF Parameter
SmallPrime : : =- INTEGER (2 • 3
\
5 j 7 j 11 [ 13
\
17 ; 19 Г 23 | 29)
E.5.2 В случаях, когда два или более типа имеют много общего, следует
рассмотреть возможность явного определении и качестве исходного типа их об
щего порождающего типа к использовать механизм образования подтипов для
определения требуемых типов. Этот подход подчеркивает взаимосвязь и общ
ность типов п является привлекательным (хотя к необязательным) подходом к
развитию типов. Такой подход облегчает, таким образом, реализацию обработки
значений этих типов.
Пример
Envelope : t- SET (lypeA TvpeA,
typeB TypcB OPTIONAL.
typeC TypcC OPTIONAL)
— обитай порождающий тип
ЛВEnvelope .: - Envelope IWITH COMPONENTS
(
-----
typeB PRESENT, typeC ABSENT))
- - —где тип typeB должен всегда
------
присутствовать, а тип typeC
— должен отсутствовать
АСЕnvelope : - Envelope |WITH COMPONENTS
typeB
-
ABSENT. typeC PRESENT))
—где тип typeC должен всегда
------
присутствовать, а тип typeB
— — должен отсутствовать
Доз последних определении могут быть также записаны и следующем виде:
ABEnvcIope :Envelope (WITH COMPONENTS(lypoA. typeB))
ЛСEnvelope :: - Envelope (WITH COMPONENTSjtypeA, typeC))
Выбор между альтернативными вариантами описания должен основываться
иа таких факторах, как число компонентов в порождающем типе, число необяза
тельных компонентов, значительность различий между отдельными типами, а
также вероятность их совместной дальнейшей эволюции.’
Е5.3 Механизм подтипов следует использовать для частичного определения
значения, например, протокольного блока данных, с которым будет производить
ся сравнение а тесте конформности, при условии, что этот тест конформности
анализирует только некоторые компоненты ПБД.
Пример
Пусть задан протокольный блок данных
P D V
:: — SET
{alpha JO) INTEGER,
beta |l) lA&String OPTIONAL,
gamma (21 SEQUENCE OF Parameter,
delta (3| BOOLEAN)
85