GBT 16262-1996.pdf

上传人:来看看 文档编号:3763743 上传时间:2019-09-23 格式:PDF 页数:58 大小:2.16MB
返回 下载 相关 举报
GBT 16262-1996.pdf_第1页
第1页 / 共58页
GBT 16262-1996.pdf_第2页
第2页 / 共58页
GBT 16262-1996.pdf_第3页
第3页 / 共58页
GBT 16262-1996.pdf_第4页
第4页 / 共58页
GBT 16262-1996.pdf_第5页
第5页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《GBT 16262-1996.pdf》由会员分享,可在线阅读,更多相关《GBT 16262-1996.pdf(58页珍藏版)》请在三一文库上搜索。

1、中华 人民共 和 国国家标 准 信息处理系统开放系统互连 抽象语法记法一( A S N . 1 ) 规范 I n f o r m a t i o n p r o c e s s i n g s y s t e m -O p e n s y s t e m s i n t e r c o n n e c t i o n - - S p e c i f i c a t i o n o f a b s t r a c t s y n t a x n o t a t i o n o n e ( A S N . 1 ) G B / T 1 6 2 6 2 一 1 9 9 6 I S O 8 8 2 4

2、门9 9 0 本标准等同采用国际标准I S O 8 8 2 4 : 1 9 9 0 ( 信息处理系统开放系统互连抽象语法记法一 ( A S N . 1 ) 规范 。 0 引言 在G B 9 3 8 7 基本参考模型的较低层中, 服务原语的各个用户数据参数都表示为八位位组序列的二 进制值。 在表示层中, 用户数据参数的性质有变化。 应用层标准要求表示层服务用户数据( 见G B / T 1 5 6 9 5 ) 以携带较为复杂的类型值, 可能包括来自各种字符集的字符串。为了规定所携带的值, 要求一种已定义 的记法, 但该记法不决定值的表示。 这由一个或多个称作“ 编码规则” 的算法来补充, 此“ 编

3、码规则” 确定 携带这种应用层值的会话层八位位组的值( 称为“ 传送语法,)。 表示层协议( 见G B / T 1 5 6 9 6 ) 可以协商使 用何种传送语法。 确定一个值是为了使它区别于其他可能的值。 该值与其他要区别的那些值一起的集合称为“ 类型” , 一个特定的实例是该类型的一个值。 更一般地, 值或类型常被认为由 几个更简单的值或类型以及它们间 的关系组成。术语“ 数据类型” 常用作类型的同义词。 为了正确地解释值所代表的内容( 纸上的记号或是通信线路中的位) , 必须知道( 通常从上下文中) 所表示的值的类型。因此, 类型的标识是本标准的一个重要部分。 定义复杂类型的非常普通的技

4、术是先定义少量“ 简单类型” , 这些简单类型通过定义它们的所有可 能值来获得, 然后用不同方式组合这些简单类型。下面是几种定义新类型的方式: a ) 给出已有类型的( 有序) 表, 从已有类型中取出每个值, 这些值的( 有序) 序列形成一个值; 按这种 方法得到的所有的值的集合是一个新类型( 若表中的已 有类型都是不同的, 则允许省略某些值以扩充这 个机制) ; b ) 给出( 不同的) 已有类型的表, 从已有类型中取出每个值, 这些值的( 无序) 集形成一个值; 按此法 得到的所有可能值的集合是一个新类型( 通过省略某些值也能扩展该机制) ; c ) 给出单个已有类型, 其值的( 有序)

5、序列或零个、 一个或几个已有类型的值的( 无序) 集形成一个 值; 按此法得到的所有可能值的( 无限) 集合是一个新类型; d ) 给出( 不同) 类型的表, 选择其中任何一个类型的值作为一个值; 按此法得到的所有可能值的集 合是一个新类型; e ) 给出一个类型, 通过使用它的值的某些结构和序关系, 它的一个子集可以形成一个新类型; 按上述方法定义的类型称为结构类型。 国家技术监督局1 9 9 6 一 0 3 一 2 2 批准1 9 9 6 一 1 0 一 0 1 实a G B / T 1 6 2 6 2 一 1 9 9 6 对每个用本标准的记法定义的类型指派了一个“ 标记” 。这个标记由本

6、标准或者该记法的使用者定。 义 相同的标记指派给不同的类型是常见的, 这些特定的类型由标记的上下文来识别。 该记法的使用者可以选择指派不同的标记给某单个类型的两次出现, 从而产生两个不同的类型。 如 同上述d ) 情况下, 需要区别所作哪一个值选择时, 这是必要的。 在该记法中规定了四种类别。 第一类是“ 通用” 类。通用类标记仅用于本标准中, 每个标记指派给: a ) 单个类型; 或 b ) 一个构造机制。 第二类是“ 应用” 类。 应用类标记由 其他标准指派一些类型。 在一个特定标准中, 一个应用类标记只 指派给一个类型。 第三类型是“ 专用” 类。专用类标记不由标准指派。其用法由使用者决

7、定。 最后一个标记类是“ 上下文指定” 类。 在该记法的任何使用中自由 指派, 并按照它使用的上下文来解 释。 标记主要为机器使用, 对于本标准中的与人有关的记法, 它是不必出现的。 但是, 要求区别某些类型 时, 则要使它们有不同的标记。因此标记的分配是使用该记法的一个重要部分。 注: 本标准的记法中的所有类型都有一个标记, 给定任何类型, 该记法的使用者能用不同的标记定义新类型 对某类型的值的标记, 编码规则总是显式或隐式地有该类型的标记, 该记法的使用上的限制是为了 保证: 在 假定适用的类型定义可用时, 确保标记可无二义地确定实际类型。 本标准规定的记法, 既能定义复杂的类型, 也能规

8、定这些类型的值, 但并不决定传送时一个实际类 型将如何表示( 通过八位位组的序列) 。具有这样的特性的记法称为“ 用于抽象语法定义的记法” 。 本标准的目 的是规定一个用于抽象语法定义的记法, 叫做“ 抽象语法记法一” , 或“ A S N . 1 “ , 也用作 定义协议的半形式化工具。 该记法不必预先作无二义的说明, 该记法的使用者有责任确保它们的规范是 无二义的。 本标准由规定“ 编码规则” 的标准支持。 对A S N . 1 定义的类型的值, 使用编码规则后产生该值的表 示的完整规范( 传送语法) 。 本标准与 C I T T建议X . 2 0 8 ( 1 9 8 8 ) 在技术上是相

9、容的。 本标准的第7 章至第 3 0 章( 包含这两章) 定义A S N . 1 支持的简单类型, 并描述用于引用简单类型 及定义结构类型的一些记法。第7 章至第3 0 章也描述了A S N . 1 定义的类型的值的记法。 本标准的第3 1 章定义另外的类型( 字符集串) , 通过对字符集的应用编码规则, 该类型可以等同于 八位位组串类型。 本标准的第3 2 章至第3 5 章( 包含这两章) 定义某些结构类型, 这些类型被认为是通用的, 但它们不 需要另外的编码。 注: 希望增加这些章使之包括其他普通数据类型, 如诊断、 授权信息、 计账信息、 安全参数等. 值记法和在这些章中定义的类型的语义

10、定义是从使用A S N . 1 记法的类型定义导出的。此类型定 义能被定义编码规则的标准引用, 对这些类型规定编码。 本标准的第3 6 章至第3 7 章定义了 一个记法, 它可以使子类型从双亲类型的 值定义得到。 附录A 补充件) , 描述一个基本A S N . I 记法的扩展记法, 称为宏业务。 附录A ( 补充件) , I S ( ) 支持的管理部门对客体标识符树的定义。 附录C ( 补充件) , C C I T T支持的管理部门对客体标识符树的定义。 附录D 补充件) , I S ( ) 和C C I T T联合使用对客体标识符树的定义。 附录E ( 补充件) , 提供使用A S N .

11、 1 表示的例子和提示。 附录F ( 参考件) , 用第五章的记法给出A S N . 1 的提要。 G B / T 1 6 2 6 2 一 1 9 9 6 在本标准的末尾给出了包括关键字、 类型和主要术语的索引。 本标准文本, 特别是附录B ( 补充件) 到附录D ( 补充件) , 是以联合I S O - C C I T T的协定为主题的。 , 主题内容与适用范围 本标准规定一个用于抽象语法的记法, 叫做抽象语法记法一( A S N . 1 ) , 本标准定义了一些简单类型及其标记, 并规定引用这些类型和这些类型值的记法。 本标准定义了从较基本类型构造新类型的机制, 并规定定义这些结构类型和给

12、它们指派标记, 以及 规定这些类型值的记法。 本标准( 通过引用其他的标准) 定义在A S N . 1 范围使用的字符集。 本标准定义一些有用的类型( 使用A S N . 1 ) , 它们可供A S N . 1 使用者使用。 无论何时需要定义信息的抽象语法都可应用A S N . 1 记法。它尤其用于应用层协议标准, 但并不仅 仅如此。 A S N . 1 记法也被其他表示层标准引用。这些标准为简单类型、 结构类型、 字符串类型和A S N . 1 的 其他有用类型定义编码规则。 2 引用标准 G B 2 6 5 9 世界各国和地区名称代码 I S O 6 5 2 3 数据交换组织标记的结构 G

13、 B / T 7 4 0 8 数据元和交换格式 信息交换日 期和时间表示法 G B 9 3 8 7 信息 处理系统 开放系 统互连 基本参考模型 G B / T 1 2 0 5 4 数据处理转义序列的登记规程 G B / T 1 5 6 9 5 -1 9 9 5 信息处理系统 开放系统互连 面向连接的表示服务定义 G B / T 1 5 6 9 6 -1 9 9 5 信息处理系统开放系统互连面向连接的表示协议规范 G B / T 1 6 2 6 3 -1 9 9 6 信息处理系统开放系统互连用于抽象语法记法一( A S N . 1 ) 基本编码规 则规范 C C I T T X . 2 0 8

14、 ( 1 9 8 8 ) 抽象语法记法1 ( A S N . 1 ) 规范 C C I T T X . 1 2 1 ( 1 9 8 8 ) 公用数据网用的国际编号方案 3 术语 本标准使用G B 9 3 8 7 中的术语。 11 值v a l u e 值集合中可区分的成员。 3 . 2 类型t y p e 已 命名的值集合。 3 . 3 简单 类型 s im p le t y p e 通过直接规定类型值集合而定义的类型。 3 . 4 结构类型 s t r u c t u r e d t y p e 通过引用一个或多个其他类型而定义的类型。 3 . 5 成分类型 c o m p o n e n

15、t t y p e 定义结构类型时所引用的类型之一。 3 . 6 标记t a g 与每个A S N . 1 类型关联的类型记号。 17 置标记t a g g i n g G s / T 1 6 2 6 2 一1 9 9 6 用规定的标记替换某个类型现存的( 可能是默认的) 标记。 3 . 8 A S N . 1 字 符集A S N . 1 c h a r a c t e r s e t 在第7 章中规定的用于A S N . 1 记法的字符集。 3 . 9 项 it e m s 取自A S N . 1 字符集的已命名的字符序列, 用于形成A S N . 1 记法, 在第8 章中规定。 3 . 1

16、 0类 型( 或 值) 引 用 名 t y p e ( o r v a lu e ) r e f e r e n c e n a m e 在某个上下文中唯一与一个类型( 或值) 相联系的名字。 注: 引用名指派给本标准中定义的类型, 在A S N . 1 中这是普遍有效的。 其他引用名在其他标准中定义, 并只在定义 它的标准的上下文中出现 11 1 A S N . 1 编 码规则 A S N . 1 e n c o d in g r u le s 在传送任何A S N . 1 类型值期间规定其表示的规则; A S N . 1 编码规则使得传送的信息能够被接受 者识别为特定A S N . 1 类

17、型的特定值。 3 . 1 2 字 符串 类型 c h a r a c t e r s t r i n g t y p e 其值是取自 某个已定义字符集的字符串的类型。 3 . 1 3布 尔 类 型 b o o le a n t y p e 具有两个可区分值的简单类型。 3 . 1 4 真 t r u e 布尔类型中的可区分值的一个。 3 . 1 5 假f a l s e 布尔类型中的可区分值的另一个。 3 . 1 6 整数类ffl ) i n t e g e r t y p e 具有可区分值的简单类型, 值是正整数或负整数, 包括零( 作为单一值)o 注: 特定的编码规则限定整数的范围, 但应

18、使选择的这种范围不致影响A S N . 1 的任何用户。 尽管如此, A S N . 1 的特 定用户可以使用注释表达更严格的限制范围. 1 1 7枚 举 类! 1 e n u m e r a t e d t y p e 一个简单类型, 其值是做为类型记法一部分的给定不同标识符。 3 . 1 8 实数类型 r e a l t y p e 一个简单类型, 其可区分值( 1 6 . 2 中规定) 是实数集合的一个成员。 3 . 1 9 位串 类型 b it s t r i n g t y p e 其可区分值是零个、 一个或多个二进制位的有序序列的简单类型。 注: 编码规则不限制位申中的位数。但是,

19、 A S N . 1 的特定用户可以使用注释表达位数的上限或下限. 3 . 2 0 八位 位 组串 类型 o c t e t s t r in g t y p e 其可区分值是零个、 一个或多个八位位组的有序序列的简单类型。 每个八位位组是八个二进制位的 有序序列。 注: 编码规则不限制八位位组串中的八位位组数, 但A S N 的特定用户可以使用注释表达八位位组数的上限或下 限。 3 . 2 1 空类型 n u ll t y p e 由一个单一值组成的简单类型, 也称为空。 注: 空值通常用于有几个可能的候选值但又都不适用的情况。 3 . 2 2 序列类型 s e q u e n c e t

20、y p e 通过引用一个固定的有序的类型表( 其中某些类型可以申明为可选的) 而定义的结构类型; 新类型 的每个值是一个有序的值表, 表中各个值取自 相应的成分类型。 注: 当一个成分类f申明为可选时。 新类型的值不必包括该成分类型的值. 3 . 2 3单 纯 序 列 类型 s e q u e n c e - o f t y p e c a / r 1 6 2 6 2 一1 9 9 6 通过引用单个现存类型而定义的结构类型; 新类型的每个值是该现存类型的零个、 一个或多个值的 有序成分表。 注 编码规则中不限制单 纯序列值中的值的数目。 但是, A S N . 1 的特定用户可以使用注释来表达

21、值的数目的巨 限或 卜 限 3 . 2 4 集合类I v s e t t y p e 通过引用固定的无序的不同类型表( 其中某些类型可以申明为可选的) 而定义的结构类型; 新类型 的每个值是一个无序的值表, 表中各个值取自 相应的成分类型。 注: 当一个成分类型说明为可选时, 新类型的值不必包括该成分类型的值。 3 . 2 5 单纯集合类型 s e t - o f t y p e 通过引用单个现存类型定义的结构类型; 新类型的每个值是该现存类型的零个, 一个或多个值的无 序表。 注 编码规则不限制单纯序列类型中的值的数目。但是, A S N . 1 的用户可以使用注释表达值的数目的上限或下限,

22、 或要求各个值彼此不同。 3 . 2 6 已 标记类型 t a g g e d t y p e 通过引用单个现存类型和一个标记来定义的类型; 新类型与该现存类型同构, 但并不等同。 3 . 2 7 值选择类型 c h o ic e t y p e 通过引用固定的无序的不同类型而定义的结构类型; 新类型的每个值是成分类型之一的值。 1 2 8类型 选择 类型 s e l e c t io n t y p e 通过引用值选择类型的一个成分类型而定义的结构类型。 3 . 2 9 任意类型 a n y t y p e 未规定其成分类型的值选择类型, 但限定其成分类型为能用A S N . 1 定义的类型

23、集合。 1 3 0 外部 类型 e x t e r n a l t y p e 其可区分值不能从其外部特征导出, 但能够从这样一个值的编码导出, 这些值可以但不必用 A S N . 1 描述, 因而其编码可以但不必与A S N . 1 编码规则一致。 13 1信息 客 体 i n f o r m a t io n o b j e c t 信息中定义或规范中已定义的部分, 为在通信实例中标识其使用而要求有一个名字。 3 . 3 2 客体标识符o b j e c t i d e n t i f i e r 个与信息客体相联系的值( 区别于所有其他同类值) 。 3 . 3 3 客体标 识符类型 o

24、b je c t id e n t i f ie r t y p e 其可区分值为按照本标准规则分配的所有客体标识符的集合。 注: 本标准的这条规则允许各种机构独立地将客体标识符与信息客体相联系。 1 3 4 客 体 描述 符类型 o b j e c t d e s c r ip t o r t y p e 其可区分值是提供对信息客体简要描述的人可读的文本的类型。 注: 客体描述符值通常但不总是与某个单一的信息客体相联系。只有客体标识符才无歧义地标识信息客体 13 5 递归定义 r e c u r s i v e d e f i n it io n s A S N . 1 的定义的一个集合,

25、不能对这些定义重新排序, 使得构造中使用的所有A S N . 1 类型在该定 义构造之前定义。 注: A S N . 1 允许递归定义: 本记法的用户有责任确保使用的值( 或结果类型) 具有有限的表示。 3 . 3 6 模块m o d u l e 用于类型定义和值定义的A S N . 1 记法的一个或多个使用实例, 用A S N . 1 模块记法( 见第9 章) 定 界 13 7 产生式 p r o d u c t io n 用来规定A S N . 1 形式记法的一部分, 其中允许的项序列与一个名字相联系, 该名字可以用来在新 的允许的序列集合定义中引用它所代表的那些序列。 G B / T 1

26、 6 2 6 2 一 1 9 9 6 3 . 3 8 国 际协调时 C o o r d i n a t e U n iv e r s a l T i m e ( U T C ) 国际时间局所保持的时标, 构成标准频率和时间信号协调传播的基础。 注 此定义来源于国际无线电咨询委员会 C C I R ) 的4 6 0 - 2 建议。C C I R也用U T C作为世界协调时的缩写 U T C也称为格林尼治标准时间, 并定时地广播适当的时间信号。 3 . 3 9 ( A S N . I 的) 用户u s e r ( o f A S N . 1 ) 使用A S N . 1 定义一段特定信息的抽象语法部

27、分的个人或组织。 3 . 4 0 ( 双亲类型的) 子类型 s u b t y p e ( o f a p a r e n t I y p e ) 一个类型, 其值是作为一些其他类型( 双亲类型) 的值的子集合规定的。 3 . 4 1 ( 子类型的) 双亲类型 p a r e n t t y p e ( o f a s u b t y p e ) 用于定义子类型的类型。 注: 双亲类型自己本身可能是一些其他类型的子类型 3 . 4 2 子类型 规范 s u b t y p e s p e c i f i c a t io n 能与一个类型记法一起用于定义此类型的子类型的记法。 3 . 4 3子

28、 类 型 值 集 合 s u b t y p e v a lu e s e t 形成 子 类型规范, 规定 将包括在 子 类型中 的 双 亲类型值 集合的 记法。 本标准使用G B / T 1 5 6 9 5 定义的下列术语: a ) 表示数据值; b ) ( 一个) 抽象语法; 。 ) 抽象语法名; d ) 传送语法名。 本标准也使用G B / T 1 5 6 9 6 中定义的下列术语表示上下文标识符。 本标准使用I S O 6 5 2 3 中定义的一 F 列术语: a ) 通行组织; b ) 组织代码; c ) 国际代码指示符。 4 缩写 AS N. 1 UTC I CD DCC DNI

29、C RP OA 抽象语法记法一 世界协调时 国际代码指示符 数据国家代码 数据网络识别码 认识的私用操作机构 5 本标准中使用的记法 A S N . 1 记法包含一个字符串序列, 这些字符取自第 7 章规定的A S N . 1 字符集。 每次使用A S N . 1 记法包括从A S N . 1 字符集中抽出字符并组合为项。 第8 章规定组成A S N . 1 项的 字符串, 并给每个项命名。 在第 9 章 以及以下几章) 中, A S N . 1 记法的规定是通过对组成A S N . I 表示有效实例的项的序列 之集的规定, 及对每个序列语义的规定来实现的。 为了说明这样的集合, 本标准使用下

30、面各条中定义的形式记法。 5 . 1 产生式 一个新的( 或更复杂的) A S N . 1 序列的集合是通过产生式来定义的。 它使用本标准中定义的序列集 c s / T 1 6 2 6 2一1 9 9 6 合的名字, 并通过以下规定之 一 来形成新的序列集合: 。 ) 新序列集由任何原有集合的任何原有序列组成, 或者 b ) 新序列由任何这样的序列组成: 它通过从每个集合中仅取一个序列, 并按特定的次序组合而成。 每个产生式由下面几个部分组成, 占一行或几行, 次序是: a ) 新序列集合的名字; b ) 字符 c ) 一个或多个5 . 2 中所定义序列的候选集, 使用下面字符分隔 一 个 序

31、 列 若 I; ,-12 一 个 或 多 个 候 选 集 中 出 现 ,贝 。 它 在 新 集 合 中 出 现 。 在 本 标 准 中 ,新 集 合 用 上 面 a 。 中 的 名字引用。 注若一个序列出现在多个候选中 结果表示中任何语义1 _ 的二义性由整个A S N . 1 序列的其他部分解决 5 . 2 候选集 在“ 一个或多个候选集” 中, 序列的每一个候选集通过一组名字来描述。每一个名字或者是一个项 名, 或者是一个本标准中产生式定义序列集合的名字。 候选集定义 的 序列集合由 所有 这样 获得的序 列 组成, 取任何一 : 个带第一名 字的 序 列( 或 项) , ( 然 后) 和

32、任何一 个带第二个名字的序列( 或项) 组合, ( 然后) 和任何一个带第三个名字的序列( 或者项) 组合, 等 等, 直到包括候选集中最后的一个名字( 或者项) 。 53 产生式的例子 位串值:=b 串一 h 串I 标识符表 是一个产生式, 它的名字为“ 位串值” , 序列如下: a ) 任何b 串( 单项) ; 和 b ) 任何h串( 单项) ; 和 c ) 任何有标识符表的序列, 用 开始, 井用 结束。 注: 和 是含有单字符 和 的项名( 见第 8 章) 在这个例子中, “ 标识符表” 由进一步的产生式定义, 可以在定义“ 位串值” 的产生式之前或者之后。 5 . 4格式 在本标准中

33、使用的每个产生式前面和后面都有一个空行, 产生式中没有空行。 产生式或者在一行上 或者分布在几行上。格式是不重要的。 5 . 5 递归 本标准中的产生式通常是递归的。在这种情况下, 只要有新的序列产生, 产生式就要继续重复 注: 在许多 情况下, 这徉的重复导致了容许序列的无界集. 某些或所有这些序列本身就是无界的, 这没有错 5 . 6 序列集合的引用 本标准通过引用产生式的第一个名字( 在:=之前) 来引用一个序列集合( A S N . 1 表示的一部分) ; 这个名字用户括起来, 把它和自然语言文本区分开来, 否则, 它就作为产生式的一部分出现。 57 项的引用 本标准通过引用项名来定义

34、一个项。项名用” 括起来, 以与自然语言正文区别开来, 否则, 它将作为 产生式的一 部分而出现。 58 标记 一个标记是通过给出它的类型和类型中的号码来说明的, 类型是下列中之一: 通用 应用 G B / T 1 6 2 6 2 一 1 9 9 6 专用 上下文规定 号码是 一 个非负整数, 用十进制记法。 A S N . 1 用户在指派标记时的限制在第 2 4 章中说明。 通用类型的标记是这样指派的: 对结构类型, 最高层结构可以由标记导出; 对简单类型. 类型可由标 记导出。表 1 总结了在本标准中说明的通用类型中标记的指派。 表 1 通用类型标记指派 通用类型 通用类型 通用类型 通用

35、类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 通用类型 1 2 3 4 5 6 7 8 9 1 0 1 1 - 1 5 1 6 1 7 1 8 2 2 , 2 5 - - 2 7 2 32 4 2 8 . “ . . . . . . 布尔类型 整数类型 位串类型 j 位位串类型 空类型 客体标识符类型 客体描述符类型 外部类型 实数类型 枚举类型 为本标准的将来版本保留 序列和单纯序列类型 集合和单纯集合类型 字符串类型 时间类型 为本标准的将来版本保留 注: 通用类型另外的标记保留给本标准以后的增加。 6 A S N .

36、1 记法的使用 :一; 类型定义的A S N . 1 表示为“ 类型” ( 见 1 2 . 1 ) 0 类型值的A S N . 1 表示为“ 值” ( 见1 2 . 6 ) 0 6 . 3 6 . 4 6 . 5 注: 在不知道类型的有关内容时, 通常不能解释值的记法。 将类型赋给一个类型引用名的A S N . 1 记法为“ 类型赋值,(见 1 1 . 1 ) . 将值赋给一个值引用名的A S N . 1 记法为“ 值赋值” ( 见1 1 - 2 ) . , 类型赋值” 记法和“ 值赋值” 记法仅用于“ 模块定义” 中( 见 9 . 1 ) . A S N . 1 字符集 7 . 1 除7 .

37、 2 和 7 . 3 说明外, 一个A S N . 1 项由表 2 中字符的序列组成。 表 2 A S N . 1 字符集 月: 附加字符 和 在宏定义中使用泣 见附录A( 补充件) 。 等价的有关标准由我国的标准化组织给出, 附加字符可能在以下的项中出现 最后5 个在附录A( 补充件) 定 义 (8(S 类! Q 引用 标 识符:) ) 1 3 5 G B / T 1 6 2 6 2 一 1 9 9 6 值引用( 8 . 4 ) 模块引用( 8 . 5 ) 宏引用( A 2 . 1 ) 产生式引用 A 2 . 2 ) 局部类型引用( A 2 . 3 ) 局部值引用( A 2 . 4 ) 。

38、串( A 2 . 7 ) 乌附加字符用在一种大小写无区别的语言时, 由以上某些A S N . 1 项第一个字符的不同情况导致语义的区 别将用别的办法处理。 7 . 2 在用该记法规定字符串类型时, A S N . 1 记法中可以出现已定义字符集中的所有字符, 括以双引号 ( 见 8 . 1 1 ) , 7 . 3 其他的字符可以出现于“ 注释” 项中( 见8 . 6 ) , 了 . 4 字符的形式、 大小、 色彩、 亮度及其他显示特性无关紧要。 75 大写字母和小写字母是有区别的。 8 A S N . 1 项 8 , 1 一般规则 8 . 1 . 1 下列各条规定A S N . 1 项中的字符

39、, 在每种情况下, 都给出项名和形成项的字符序列的定义。 注: 附录A 补充件) 给出用于宏记法的项. 8 . 1 . 2 下列各条规定的每个项要出现在一行上, 没有空格( 除掉“ 注释” 项和列在表4中的以外) 。 空值 外部符号:=符号表I 空值 内部:. : = I M P O R T S 内部符号; 空值 外部符号:=来自 模块表的符号 空值 来自模块表的符号:二来自 模块的符号 来自模块表的符号来自 模块的符号 来自 模块表的符号:=符号表F R O M模块标识符 符号表:=符号I 符号表, 符号 符号:=类型引用 值引用 赋值表:二赋值! 赋值表赋值 赋 值: : = 类型赋值 值

40、赋值 注: 附录A ( 补充件) 规定一个也可以出现在“ 赋值表” 中的“ 宏定义” 序列。由宏定义产生的记法可以在同一模块 中的其他地方出现。 在个别情况下( 但不赞成这样) . 对于例子和通用类标记的定义, “ 模块体” 可以在“ 模块定义” 之外使用. “ 类型定义” 和. 值赋值” 产生式在第 1 1 章中规定。 将A S N . 1 数据类型组成模块时, 不必为表示土 文定义将表示数据信息变为命名抽象语法。 模块定义的“ 标记缺省” 值只影响那些在模块中显式定义的类型。它并不影响内部类型的表示 一个“ 宏引用” 见附录A ) 也可作为一个“ 符号” 。 9 . 2 如果“ 标记缺省”

41、 是“ 空值, , 它取“ E X P L I C I T T A G S “ , 9 . 3 出现在“ 模块定义” 产生式中的“ 模块引用” 称为模块名。 模块名的选择用来保证在具有这个模块名 的所有“ 模块定义 , 序列的“ 模块体” 中出现的所有序列的相容性和完整性。 如果对其中出现的每个“ 类型 引用” 和“ 值引用” , 只有一个“ 类型赋值” 或“ 值赋值” ( 相应的) 与类型或值的名字( 相应的) 相关连, 则“ 赋 值” 序列的集合是相容和完整的。 9 . 4 模块名在模块定义的应用范围内只能使用一次( 除9 . 4 中说明以外) 。 注: 建议在标准中定义的模块有如下形式的

42、模块名: I S O X X X X - Y Y Y Y其中X X X X是标准序号, Y Y Y Y是标准内 的首字母缩写( 如: 1 T M. 1 “ 1 E M或 C C R ) 。在其他标准中可使用类似的约定 G s / r 1 6 2 6 2 一 1 9 9 6 9 . 5 “ 类型引用” 和“ 值引用” 在某个模块中被引用, 这个模块不同于使用“ 外部类似引用” 或“ 外部值引 用” 定义的类型引用和值引用的模块。后一种模块由下列产生式规定。 外部类型引用:=模块引用 类型引用 外部值引用:=模块引用 值引用 96 如果“ 已赋值的标识符” 包括一个“ 客体标识符值” , 后者无二

43、义地并唯一地标识此模块。 注 建议指派客体标识符使其他模块能无二义的引用这个模块. 97 在一个“ 来自 模块的符号” 中的“ 模块标识符” 应出现在另一个模块的“ 模块定义” 中, 除非是它包含 一个“ 客体标识符值” 使此“ 模块引用” 在两种情况下可以不同。 注; 当符号从两个具有相同名称的模块( 模块命名与9 . 4 不符) 输入时, 只可使用一个与其他模块所使用的不同 的“ 模块引用” 。 使用替换区别名使得这些名在模块的体中使用成为有效。 当一个“ 模块引用” 和一个“ 客体标识符值” 都用于引用模块时, 后者应视为明确的。 9 . 8 当选择“ 出口符号” 代替“ 出口” 时:

44、a ) “ 出口 符号” 中的每个符号应在构造模块中定义; 并且 b ) 每 个 丛 模 块外 面引 用 的 “ 符 号” 应 恰当 地被 包 含 在 “ 出口 符 号 ” 中 并 且只 有 这些 “ 符 号, 可以 从 模 块外面引用; 并且 c ) 如果没有这样的“ 符号” , 那么应选择空值代替“ 出口 符号” ( 不是代替“ 出口” ) 注: 包含“ 空值” 代替“ 出口 ” 是为了向后兼容 在“ 出口” 是“ 空值” 的模块中定义的每个“ 符号” 可以由其他模块引用。 9 . 9 当选择“ 入口 符号” 代替“ 入口” 时: a ) “ 来自 模块的符号” 中的每个“ 符号” 应在由

45、“ 来自 模块的符号” 中的“ 模块标识符” 所注释的模块 中定义; 并且 b ) 可在由“ 来自 模块的符号” 中的“ 模块标识符” 所注释的模块定义中选择“ 出口符号” 代替“ 出口” , 此“ 符号” 应出现在其“ 出口符号” 中; 并且 c ) 只有那些出现在“ 来自 模块的符号” 的“ 符号表” 之中的“ 符号” 可以作为任何“ 外部类型引用” 中 的“ 类型引用” ( 或任何,卜 部值引用” 中的“ 值引用” ) 出现, 此“ 外部类型引用” 才具有由“ 来自 模块的符 号 哟“ 模块标识符” 所注释的“ 模块引用” ; 并且 d ) 如果没有这样的符号, 那么应选择“ 空值” 代

46、替“ 入口 符号, , ( 而不是代替“ 入口” ) 注: 包含“ 空值” 代替“ 入口” 是为了向后兼容。 “ 入口, 是空的模块可以引用其他模块中定义的“ 符号,. 9 . 1 0 一个在“ 来自 模块的符号” 的“ 符号” 可以出现在“ 已定义类型” 的“ 模块体” 中( 如果它是“ 类型引 用” ) 或“ 已 定义值” 的“ 模块体” 中( 如果它是“ 值引用” ) 。与“ 符号” 相关的含义是由响应“ 模块标识符” 注 释的模块中的“ 符号” 。 若此“ 符号” 也出现在一个“ 赋值表” 中( 反对的) , 或出现在一个或多个“ 来自 模块 的符号” 其他事例中, 它应只用于“ 外部

47、类型引用” 或“ 外部值引用” , 其“ 模块引用” 是在“ 来自模块的符 号” 中( 见9 . 1 1 ) 。 若此符号不这样出 现, 它可以直接的用于“ 已定义类型” 或“ 已定义值” 。 9 . 1 1 除9 . 1 0 中 规定的以外, 一个“ 类型引用” 或“ 值引用” 在一个模块中引用应不同于在使用“ 外部类 型引用” 或“ 外部值引用” 定义的模块中引用, 按下述产生式规定: 外部类型引用:= 模块引用 类型引用 外部值引用二 二 = 模块引用 G B / T 1 6 2 6 2 一 1 9 9 6 值引用 1 0 引用类型和值定义 1 0 门产生式 有定义类型二=外部类型引用I

48、 类型引用 有定义值:=外部值引用I 值引用 描述将用于引用类型和值定义的序列。 1 0 . 2 除9 . 1 1 规定的以外, 除非引用发生在一个已赋予类型和值给类型引用和值引用的模块当中( 见 1 1 . 1 和1 1 . 2 ) , 否则“ 类型引用” 和“ 值引用” 候选将不使用。 1 0 . 3 除非相应的“ 类型引用” 或“ 值引用” 在相应的“ 模块参量” 中被赋与一个类型或相应的值( 见 1 1 . 1 和 1 1 . 2 ) , 否则不使用“ 外部类型引用” 和“ 外部值引用” 。 们类型和值的限值 1 1 . 1 通过由“ 类型赋值” 产生式规定的记法, “ 类型引用” 被

49、赋与一个类型 类型赋值:=类型引用 类型 “ 类型引用户 不能是用来引用在第3 2 章中定义的字符串类型的名字, 也不能是用来引用第3 2 - 3 5 章中定义的类型的名字。 2 通过“ 值赋值” 产生式规定的记法, “ 值引用” 被赋与一个值 值赋值:二值引用 类型 值 赋与“ 值引用” 的“ 值” 是关于由 “ 类型” 定义的类型中的值的有效记法( 见1 2 . 7 ) , 类型和值的定义 11.12 1 2 . 1 一个类型由下列类型之一形成: 类型:=固有类型 有定义类型 子类型( 见1 0 . 1 ) 固有类型:=布尔类型I 整数类型 位串类型 八位位组串类型 空值类型 序列类型 单纯序列类型 集合类型! 单纯集合类型 值选择类型! 类型选择类型 有标记类型I 任意类型I 客体标识符类型 字符串类型I 有用类型 枚举类型I 实数类型 注: 在宏中定义的类型记法也可用于“ 类型” 的定义 见附录n 补充件) 此外的固有类型由本标准的补篇定义。 1 2 . 2 “ 固有类型”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1