ГОСТ Р ИСО/М ЭК 8824-1-2001
f {name jgivcnNamc "Ralph*, initial "Г . familyNamc "Smith"),
datcOfBirth "19571111").
{name (givenName "Susan", initial “B". familyNamc "Jones*).
datcOfBirth "19590717’}
}
1
C.2 Руководство no исиольюванию нотации
Типы данных и формальная нотация, определенные в настоящем стандарте, являются гибкими и позво
ляют проектировать широкий диапазон протоколов. Однако эта гибкость иногда может приводить к путанице,
особенно когда нотация используется впервые. Данное приложение является попыткой минимизировать воз
можную путаницу и даст руководство (и примеры) использования нотации. Для каждого встроенного тэта
приводится одно или нсскатько указаний по сю использованию. Типы символьных строк (например VLsiblcString) и
типы, определенные в разделах 41—43, здесь нс рассматриваются.
С.2.1 Б у л е в с к и й т и п
С.2.1.1 Булевский тип используется для моделирования логических значений, например ответов ла-нет
на поставленные вопросы.
П р и м е р
Employed : : - BOOLEAN
C.2.1.2 При назначении ссылочною имени булевскому типу выбирается то имя, которое описывает
состояние "истинно".
П р и м е р
Married : : ■=BOOLEAN- - женат
но нс
MantalSlatus : : -= BOOLEAN- - семейное положение
С.2.2 Ц е л о ч и с л е н н ы йт и п
С.2.2.1 Целочисленный тип используется для моделирования значений (практически не ограниченных)
кардинальных или целочисленных переменных.
П р и м е р
CheckingAccountBalance : : ■" INTEGER - - баланс в центах,
- - отрицательное значение означает перерасход
balance CheckingAccountBalance : :0
С.2.2.2 Максимальное и минимальное допустимые значения целочисленною типа определяются как
поименованные чиста.
И р и м с р
DayOlThcMonth : : ” INTEGER Ifiisl (1). last (3l)|
today DayOffheMonth :: ■=lira
unknown DayOnheMonlh : :0
Поименованные чиста "first" и “last" выбраны из-за их семантического значения, но не исключают воз
можности значений DayOlThcMonth меньших I. больших 31 или в интервале 1—31.
Для того чтобы ограничить значения DayOlThcMonth только лишь значениями "first" и "last* следует
писать:
DayOlThcMonth : : » INTEGER {first (I). last (31)} (first | last)
Для того чтобы ограничить значения DayOlTheMonth значениями от I до 31. следует писать:
DayOlThcMonth :: « INTEGER (first (1). last (31)) (first . . last)
dayOlThc.Month DayOlThcMonth : : ® 4
C.2.3 П е р е ч и с л и м ы й т и п
C.2.3.1 Перечислимый тип используется для моделирования значений переменных с тремя и более со
стояниями. Значения присваиваются, начиная с нуля, если единственным ограничением является их отличие
друг от друга.
II р и м с р
DayOfThcWcck : : - ENUMERATED{sunday (0). moriday (I), tuesday (2),
W e d n e s d a y
(3). thuisday (4), Friday (5). Saturday (6)}
- - Дни недели: воскресенье (0), понедельник (I). вторник (2 )....
firstDayOlTheWcck : : Sunday
Хотя перечисления "Sunday", ’monday* н т. д. выбраны из-за их семантического смысла. DayOfThcWcck
ограничивается только этими значениями. Болес тою. могут бы т присвоены только значения "sunday", "monday"
и т.
а.,
а эквивалентные целочисленные значения недопустимы.
С.2.3.2 Расширяемый перечислимый тип используется для моделирования значений переменной, кото
рая в настоящее время имеетдва состояния, но может иметь лополнигельные состояния в последующих верси
ях протокола.
69