GB T 4092.2-1992 程序设计语言COBOL 核心模块.pdf

上传人:boatfragile160 文档编号:150864 上传时间:2019-07-06 格式:PDF 页数:77 大小:4.39MB
下载 相关 举报
GB T 4092.2-1992 程序设计语言COBOL 核心模块.pdf_第1页
第1页 / 共77页
GB T 4092.2-1992 程序设计语言COBOL 核心模块.pdf_第2页
第2页 / 共77页
GB T 4092.2-1992 程序设计语言COBOL 核心模块.pdf_第3页
第3页 / 共77页
GB T 4092.2-1992 程序设计语言COBOL 核心模块.pdf_第4页
第4页 / 共77页
GB T 4092.2-1992 程序设计语言COBOL 核心模块.pdf_第5页
第5页 / 共77页
亲,该文档总共77页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中华人民共和国国家标准程序设计语言核心模块发布实施国家技术监督局发布中华人民共和国国家标准程序设计语言核心模块代替国家技术监督局批准实施引言功能在程序四个部的结构中核心模块提供数据内部处理的语言功能同时核心模块还提供定义相邻数据项的表及根据数据项在表中的位置对其进行存取的功能核心模块还提供了排错功能它包括一个编译时间开关和若干排错行级别特征核心级对段和数据描述款提供了局部功能在过程部中核心级对和语句提供了局部功能而对和语句提供了完整的功能核心级在限定数据名的构成和象征常量等方面未提供完整的功能核心级提供功能对维数不超过的定长表的表项进行存取核心级提供的排错功能包括一个编译时间开关和若干排错行核

2、心级在段和数据描述款等方面提供了完整的功能在过程部中核心级对和诸语句提供完整的功能核心级在限定数据名的构成及象征常量等方面提供了完整的功能核心级提供了在多达七维的表中存取表项的功能语言的级别限制字符集在级中不包含字符冒号在级中包含字符冒号名的特征在级中不包含限定除层号和段号外级中所有用户定义字在引用时必须唯一在级中允许有个限定词级中的用户定义字不必是唯一的象征常量在级中可以使用的象征常量是以及在级中可用的象征常量是符号字符字值象征常量以及符号字符下标级中允许出现一个两个或三个下标在级中允许出现一个到七个下标引用修改只有在级中才允许引用修改基准格式在级中不能把一个字数值字值或字符串断开使其一部分

3、出现在续行上在级中可以把一个字或数值字值或字符串断开使其一部分出现在续行上源程序一般描述一个源程序就是一个语法正确的语句的集合组织除了和语句以及程序末端标题以外在源程序中出现的语句款项段和节可以分成四个部它们的顺序如下标识部环境部数据部过程部如果指明的话可以用程序末端标题或者以无附加源程序行来标志一个源程序的结束结构下面给出组成源程序的款项和语句的一般格式及出现的先后次序一般格式标识部环境部数据部过程部程序末端标题语法规则通用术语标识部环境部数据部过程部以及程序末端标题相应地代表标识部环境部数据部过程部以及程序末端标题一般规则由适当的部首来标志程序中一个部的开始由下列三者之一来标志一个部的结束

4、同一程序中下一部的部首程序末端标题其后不再有源程序行的那个物理位置在一个程序序列中除了最后的程序外所有分别编译的源程序都必须由一个程序末端标题终止程序末端标题功能程序末端标题标志着一个命名的源程序的结束一般格式程序名语法规则程序名必须符合用户定义字的构造规则程序名要和前面程序设计段中说明的程序名一致见段一般规则程序末端标题标志指定的源程序的结束在由程序末端标题终止的程序之后出现的下一个源语句如果是语句则它必定是另一程序的标识部的部首且该程序和由程序末端标题终止的程序两者是分别编译的核心模块的标识部一般描述标识部用于标识程序每一个源程序都一定要包含有标识部此外用户还可以包括程序的编写日期和一些希

5、望的其他信息这些信息应按下面给出的一般格式放在节的下面组织段首指明包含在该段中的信息种类程序名必须在第一段即在段中给出其他各段都是任选的且在用户选用时它们可以包含在这一部中并应按后面一般格式中所指出的次序给出来段段段段以及段在标准的这一版本中是过时成分因为在标准的以后的修改版中要把它们删掉结构下面是标识部中各段的一般格式并且规定了它们在源程序中的书写次序和中定义了段和段虽然其他各段没有定义但其一般格式都按相同的方式构成一般格式程序名注解款注解款注解款注解款注解款语法规则注解款可以是计算机字符集中字符的任意组合不允许使用写在指示符区中的连字符来连接注解款然而注解款却可以分布在一行或几行上段功能段

6、给出标识程序的名一般格式程序名语法规则程序名必须遵守用户自定义字的构成规则一般规则程序名用来标识源程序目标程序以及从属于一个特定程序的所有印单段功能段在源程序印单的标识部中提供编译日期在标准的这一版本中视段是过时成分因为在标准的以后的修改版中要把它删掉一般格式注解款语法规则注解款可以是计算机字符集中字符的任意组合不允许使用写在指示符区的连字符来连接注解款但注解款却可分布在一行或几行上一般规则在程序编译时段名引起插入当前日期如果在程序中出现段则在编译时便用形如当前日期的段来取代它核心模块的环境部一般描述环境部给出了一种标准的方法用来描述数据处理问题中依赖于特定计算机的物理特性的那些方面环境部在源

7、程序中是任选的配置节配置节位于源程序的环境部中配置节涉及到源计算机和目标计算机的特性本章还提供一种方法来指定货币符选择十进制小数点指明符号字符把实现名与用户定义的助忆名对应起来把字母表名与字符集或对比序列对应起来还把类别名与字符集对应起来在源程序的环境部中配置节是任选的配置节的一般格式如下源计算机描述款目标计算机描述款专用名描述款直接或间接地包含在另一程序中的程序不能出现配置节一个程序的配置节中显式或稳式地说明的款项对该程序所包含的其他程序也一样适用段功能段提供一种描述源程序在其上编译的计算机的手段一般格式计算机名语法规则计算机名是系统名一般规则在程序中段中显式或隐式说明的所有子句适用于该程序

8、及其所包含的任何程序如果没有给出段且程序没有包含在有段的程序之中那么源计算机就是在其上编译源程序的那台计算机如果给出段但未给出源计算机描述款那么源计算机就是在其上编译源程序的那台计算机程序中如果给出子句就按照核心的描述中所指明的那样对所有的排错行进行编译见第章核心模块中的排错如果程序中没有给出子句并且该程序没有包含在一个有子句的程序中就把所有的排错行当作注解行来编译段功能段用来标识目标程序在其上执行的计算机在标准的这一版本中视子句是过时成分因为在标准的以后的修改版中要把它删掉一般格式计算机名整数字母表名语法规则计算机名是系统名一般规则计算机名可以提供标识设备配置的手段在这种情形中由每一个实现者

9、指明计算机名及其隐含的配置配置的规定包含关于内存大小的特定信息如果用户指出的子集小于运行这个目标程序所需的最小配置则实现者就要定义应该做什么动作程序中显式或隐式给出的段中所有子句都适用于该程序及包含在其中的任何程序如果程序中未给出段且该程序没有包含在有段的程序之中则由实现者定义目标计算机如果给出了段但未给出目标计算机描述款则由实现者定义目标计算机如果指明了子句则程序对比序列就是该子句中所指明的与字母表名相关的对比序列如果未指明子句则程序对比序列使用本原对比序列在段中建立的程序对比序列被用来确定任何非数值比较的逻辑值这些比较是在关系条件中显式指明的见关系条件在条件名条件中显示指明的见条件名条件条

10、件变量在报表描述款中由子句隐式指明的见报表编制模块子句在段中建立的程序对比序列适用于任何非数值的合并或排序键但当分别指明了各或语句的短语时却除外见排序合并模块语句和语句段功能段提供了一种手段使得能够指明货币符选择十进制小数点指明符号字符把实现名与用户自定义的助忆名关联起来把字母表名与字符集或对比序列关联起来并把类别名与字符集关联起来一般格式实现名助忆名条件名条件名助忆名条件名条件名条件名条件名条件名条件名字母表名实现名字值字值字值符号字符整数字母表名类别名字值字值字值语法规则如果实现名引用了一个外部开关则与此相关联的助忆名只能在语句中指明如果实现名没有引用外部开关则与此相关联的助忆名只能在或语

11、句中指明条件名不能与这样的实现名相关联如果指明了子句的字值短语则在该子句中给定的字符不能指明一次以上在子句的字值短语中指明的字值如果是数值的则必须是无正负号整数且必须在到本原字符集中的最大字符个数之间如果是非数值的且和或短语有关则每个字值都是一个字符字值字值字值字值字值都不能是符号字符象征常量和两单词是等价的同样的符号字符只能在子句中出现一次每个符号字符与整数的对应关系是由它们出现在子句中的位置决定的第一个符号字符对应于第一个整数第二个符号字符对应于第二个整数依此类推符号字符与整数的出现呈一一对应的关系由整数指明的顺序位置必须存在于本原字符集中如果给出了短语则位置必须存在于由字母表名所指明的字

12、符集中由字值短语指明的字值如果是数值的则必须是无正负号整数且必须在到本原字符集中的最大字符个数之间如果是非数值的且与短语有关则每个字值都是一个字符字值不能是象征常量一般规则在段中出现的所有子句都适用于被包含在程序中的程序任一被包含程序都能引用包含程序中段所定义的条件名如果实现名是一个外部开关则用条件名来指出开关的开状态和或闭状态通过检测条件名来询问该开关的状态见开关状态条件如果实现名是一个外部开关则该开关的状态可以由格式的语句改变在这个语句中与开关有关的助忆名是作为运算对象定义的见语句实现名指出可以由语句引用的外部开关子句提供了一种手段使一个名能与指定的字符编码集和或对比序列建立起一种联系当字

13、母表名在子句见段或在或语句的短语中引用时子句就指出了一个对比序列当文卷描述款的子句或子句引用字母表名时子句就指明一个字符编码集见中子句如果指明了短语则所标识的字符编码集或对比序列便是中国国家标准信息处理信息交换用七位编码字符集如果指明了短语则所标识的字符编码集就是在国际标准信息处理交换用的七位编码字符集中定义的基准字符集标准字符集中每个字符都与本原字符集中相应的字符相联系由实现者定义标准字符集和本原字符集的对应关系但在这两字符集之间不存在另外定义的对应关系如果指明了短路则采用本原字符编码集或本原对比序列如果指明了实现名短语则所标识的字符编码集或对比序列是由实现者规定的实现者还要规定实现名所指定

14、的字符编码集中的字符与本原字符集中的字符之间的对应关系如果指明字值短语则不能在子句中引用字母表名见顺序模块子句所标识的对比序列是按下述规则定义的对每一个字值的值而言如果是数值字值则它指明了本原字符集中字符的序号这个值一定不能超过本原字符集中字符的个数如果是非数值字值则它指明了本原字符集中的实在字符如果非数值字值的值包含多个字符则对字值中由最左字符开始的每一个字符在指定的对比序列中指派一串依次递增的位置在子句中字值出现的次序递增顺序指明了对比序列中字符的序号本原对比序列中的任何字符如果没有在字值短语中显式指明则它们在指定的对比序列中所处的位置被认为是大于显式指明的任何字符的位置所有未指明的字符的

15、相对次序均按本原对比序列的次序保持不变如果指明了短语则对本原字符集中从字值的值指明的那个字符开始到字值的值指明的那个字符结束的一串邻接的字符在指定的对比序列中指派依次递增的位置此外由给定的短语指明的一串邻接的字符可以按递增或递减的顺序指明本原子符集中的字符如果指明了短语则对由字值和字值所指明的本原字符集中的字符在指定的对比序列中或在用作表示数据的字符编码集中指派相同次序的位置如果子句中引用了字母表名则只用字值来表示本原字符集中的字符在指定的程序对比序列中具有最高序位的字符联系以象征常量只要该象征常量不是在段中指明的字值就行如果在程序对比序列中有几个具有最高序位的字符则所指明的最末一个字符联系以

16、象征常量在指定的程序对比序列中具有最低序位的字符联系以象征常量只要该象征常量不是在段中指明的字值就行如果在程序对比序列中有几个具有最低序位的字符则所指明的第一个字符联系以象征常量如果象征常量和是出现在段中的字值则它们分别与本原对比序列中具有最高和最低序位的字符相对应如果未指明短语则符号字符所代表的字符在本原字符集中的序位由整数指定如果指明了短语则整数给出了字符在字母表名所指明的字符集中的序位符号字符的内部表示就是本原字符集中字符的内部表示子句提供一种手段把一个名与该子句中指定的字符集联系起来类别名只能在类别条件中引用由该子句中字值的值所指定的字符定义了类别名所组成的唯一的字符集对每一字值的值而

17、言如果是数值的则其值表示字符在本原字符集中的序号这个值不能超过本原字符集中的字符个数如果是非数值的则其值表示本原字符集中的实际字符如果非数值字值包含几个字符则字值中的每个字符都包含在类别名所指定的字符集中如果给出了短语则在本原字符集中从字值指定的字符到字值指定的字符之间的相邻接的字符都包含在类别名所指定的字符集中此外由给定的短语所指定的相邻字符能以升序或降序表示本原字符集中的字符出现在子句中的字值在子句中表示货币符号该字值必须是非数值型且限于单个字符它可以是计算机字符集中任一字符但不能是下列字符之一数字到大写字母小写字母到或空格专用字符如果未出现这个子句则在子句中使用的只是字符集中定义的货币符

18、子句的含义是在子句字符串和数值字值中逗号与句号的作用互换核心模块的数据部一般描述数据部对目标程序中处理的数据进行描述源程序中数据部是任选的工作存储节工作存储节位于源程序的数据部该节描述了不组成数据文卷的那些记录和下属数据项工作存储节由节首后跟记录描述款和或独立数据描述款组成工作存储节的一般格式如下层描述款记录描述款工作存储独立项在工作存储节中彼此不发生层次关系的数据项和常数它们又不需细分时则没有必要把它们组合成记录而把它们归类并定义为独立初等项每一个这样的数据项在以专用层号开始的分开的数据描述款中定义在每一个数据描述款中都要求有下列数据子句层号数据名子句或子句其他的数据描述子句都是任选的如有必

19、要可用这些子句使数据项的描述更加完整工作存储记录在工作存储节中彼此间有确定层次关系的数据元素一定要根据记录描述的构成规则组合成记录工作存储节中彼此不发生层次关系的数据元素可被描述成单个初等项组成的记录文卷节中用于记录描述的所有子句都可以用在工作存储节的记录描述中记录描述款结构记录描述款由一组数据描述款组成这组数据描述款给出了特定记录的特性每个数据描述款包括一个层号后跟数据名或子句如果指定的话后面还会出现一系列所需的独立子句记录描述款具有层次结构因此根据某一款项是否跟有下属项而使该款项中的子句变化很大在层的概念以及数据描述款中解释了记录描述的结构和记录描述款中允许出现的成分初值除了索引数据项以外

20、工作存储节中任一数据项的初值都是通过该数据项相关的子句来提供索引数据项的初值以及没有子句的数据项的初值都是未定义的数据描述款功能数据描述款指明一个特定数据项的特征一般格式格式层号数据名数据名字符串整数数据名位标名整数整数数据名数据名位标名字值格式数据名数据名数据名格式条件名字值字值语法规则格式中的层号可以是的任一数或者是在格式中如果指定了数据名或子句则它们必须紧接在层号之后如果指定了子句则它必须紧接在所指明的数据名子句或子句之后在其他情况下子句必须紧接在层号之后其他各子句可以按任何次序书写对每一初等项都须指明一个子句但位标数据项和子句中的主项却除外对这两者来说不允许使用子句字和是等价的一般规则

21、只有初等数据项才可以指明和子句格式用于每一个条件名每一个条件名都要求单独一个层号为的描述款格式包含条件名以及和这个条件名相关的一个值多个值或一个值域一个特定条件变量的各个条件名描述款都必须紧接在和这个条件名相关的数据项描述款之后一个条件名可以和包含一个层号的数据描述款相关但下列情形除外另一个条件名层号为的数据项含有或不是子句描述的数据项组位标数据项从属于任一给定层指示符的多重层描述款隐式地表示对同一区域的再定义而从属于报表描述款的层指示符的多重层描述款则无此含义子句功能子句的作用是当一个数据项的值为零时把该数据项置为空白一般格式语法规则子句只能用于初等项而且其子句应指明为数值型或数值编辑型见子

22、句子句所适用的数值型或数值编辑型数据描述款必须以隐式或显式的方式描述为一般规则在使用子句时如果数据项的值为零则这个数据项只能包含空格如果子句用于是数值型的数据项时就把这个数据项看作是数值编辑型的子句功能数据名指明要描述之数据项的名基字可用于指明一个不被显式引用的数据项一般格式数据名语法规则在文卷描述工作存储通信和连接节中如果数据名或基字二者之一被指明则在每一个数据描述款中它们必须是跟在层号之后的第一个字一般规则如果本子句缺省则把要描述的数据项当作数据项来处理基字可以用来命名一个数据项在任何情形都不允许显式引用数据项然而基字可以用作条件变量这是因为这种使用并不需要显式引用数据项本身而只是引用它的

23、值子句功能子句指明接收数据项中数据的非标准定位一般格式语法规则子句只能在初等项这一层上使用是的缩写对于描述为数值型或指明编辑要求的任何数据项都不能使用子句对位标数据项不能使用子句一般规则当接收数据项用子句描述且发送数据项长度大于接收数据项长度时则截去最左边的多余字符当接受数据项用子句描述且其长度大于发送数据项长度时则数据按数据项的最右字符位置对齐且用空格填满最左端的空余字符位置当子句略去时则对初等项采用对齐的标准规则层号功能层号表示逻辑记录层次结构中数据项的位置此外它还用以标识工作存储数据项连接项条件名和子句的描述款一般格式层号语法规则在每一个数据描述款中层号必须是它的第一个成分隶属于或的数据

24、描述款的层号必须是到中的数或是或工作存储节及连接节中的数据描述款的层号必须是中的数或是或是一般规则在每个记录描述中层号用来标识其第一个描述款对某些描述款指派了一些专门的层号但是已经失去了层的真实含义层号用以标识独立的工作存储数据项独立的连接数据项且只能按照数据描述款的格式来使用见数据描述款层号用以标识数据描述款且只能按照数据描述款的格式来使用见数据描述款层号指派给这样的描述款它定义与条件变量相关的条件名且只能按照数据描述款的格式来使用见数据描述款对于报表描述款的隶属于层指示符以外的任何给定层指示符的多个层描述款表示同一存区的隐式重定义子句功能子句使重复的数据项不必进行重复描述并且为下标应用提供

25、所需的信息一般格式格式整数数据名位标名格式整数整数数据名数据名位标名语法规则子句不能在下列数据描述款中使用具有层号或的描述款或者具有出现次数可变的下属数据项的描述款数据名和数据名可被限定数据名的第一个限定名必须是包含子句的描述款或其下属项的名数据名的其他限定名必须是包含子句的描述款的下属项的名数据名一定要给出而不需要在通常情况下所需的下标如果整数和整数同时使用则整数必须大于或等于零且整数必须大于整数数据名必须描述为整数格式中由数据名定义的数据项不能占有下列范围中的字符位置该范围的首字符位置由包含子句的数据描述款指定而最末字符位置则由包含该子句的记录描述款指定如果子句在一个数据描述款中被指定而该

26、描述款处在包含子句的描述款那么数据名如果被指定则它必须引用一个是有外部属性的数据项此外部属性亦在同一数据部中被描述如果在数据描述款中给出子句且该数据描述款隶属于一个包含子句的描述款那么要是指定了数据名则它必是全程名且必须引用一个在同一数据部中描述的数据项在子句的格式中紧跟在数据描述款之后的只能是从属于同一记录描述款的那些数据描述款数据名代表的数据项不能含有子句除非数据名是描述款的主项在短语中的数据名所标识的数据项描述与描述款的主项之间出现的描述款不能含有子句如果描述款的主项或该描述项的从属项需要通过加位标来引用的话就要使用子句由该短语标识的位标名不能被定义因为它的分配及格式依赖于硬件而又不是数

27、据不能和任何数据层次有关位标名在程序中必须是唯一的一般规则除子句本身以外在包含子句的描述款中出现的所有数据描述子句在被描述的款项的所有出现处都适用主项出现的次数规定如下在格式中整数的值代表出现的精确次数在格式中由数据名引用的数据项的当前值表示出现的次数本格式表明描述项的主项具有可变的出现次数整数的值代表了出现的最大次数而整数的值则代表了出现的最少次数这并不意味着描述款主项的长度可变只表明主项出现次数是可变的在描述款的主项或主项的下属项及上属项被引用时数据名所指定的数据项之值应落在整数到整数之间出现次数若超过数据名所指定的数据项之值则相应数据项的内容是无定义的如果一个组项它的下属项满足子句的格式

28、则它被引用时在操作中用到的部分表区按下列方式确定如果由数据名指定的数据项超出组项之外则只有数据名引用的数据项在操作开始时的值所指定的那部分表区将被使用如果数据名标识的数据项包含在同一组项中且该组项作为发送项被引用则只有由数据名引用的数据项在操作开始时之值所指定的表区将在操作过程中用到如果组项是接受项则将用到组项的最大长度如果给出短语则根据数据名的值可以将重复的数据按升序或降序来排列采用升序还是采用降序将根据操作数的比较规则而定数据名是按意义的降序排列的如果记录描述款满足格式且与之相关的文卷描述或排序一合并描述款中包含有子句的短语则记录是变长的如果没有出现子句的短语则把任一或语句执行之前所要写入

29、的出现次数置入子句中由数据名标识的数据项之中子句功能子句描述了初等项的一般特征和编辑要求一般格式字符串语法规则子句只能在初等项这一层上使用字符串只能由字符集中用作符号的那些字符的合法组合所组成这些合法组合决定了初等项的种类在字符串中表示符号及的小写字母与其对应的大写字母是等价的而其他的小写字母与对应的大写字母之间则不等价字符串中允许的最大字符个数是对每一个初等项都必须指明一个子句但位标数据项或子句的主项却除外对它们来说是不允许使用子句的是的缩写星号用作抑制零符号时不能和子句一起出现在同一个数据描述款中一般规则可用子句描述的数据有五种即字母型数值型字符型字符编辑型和数值编辑型为了把一个数据项定义

30、为字母型它的字符串只能包含符号以及在按标准数据格式表示时其内容必须是一个或多个字母字符为了把一个数据项定义为数值型它的字符串只能包含符号和字符串可以描述的数字位数必须在的范围内当采用标准数据格式表示时如果不带正负号其内容一定是一个或多个数字字符如果带有正负号则数据项还可以包含一个或正负号的其他表示见子句为了把一个数据项定义为字符型其字符串限于的某些组合且把这样的数据项看作该字符串全部包含的情形全或全的字符串不能定义字符数据项当采用标准数据格式表示时其内容是由一个或多个计算机字符集中的字符组合为了把一个数据项定义为字符编辑型其字符串限于下列符号的某些组合和且要求至少包含有一个或和至少包含一个或零

31、或斜杠当采用标准数据格式表示时其内容是由二个或多个计算机字符集中的字符组合为了把一个数据项定义为数值编辑型其字符串限于符号和货币符号的某些组合合法的组合是按符号优先次序和编辑规则来决定的且在字符串中所能表示的数字位数必须在的范围内以及字符串必须至少包含一个或货币符号每个字符位的内容必须与相应的符号一致一个初等项的长度其长度指的是初等项按标准数据格式所占字符位置的个数由表示字符位置的允许符号个数来决定接在符号或货币符号后面的用括号括住的非无正负号整数指出该符号相继出现的次数请注意在一个给定的中下列符号只能出现一次和用以描述初等项的各个符号的作用解说如下在字符串中的每一个表示只能有一个字母的字符位

32、置且的个数计入数据项长度在字符串中的每一个表示将插入一个空格的字符位置且的个数计入数据项长度字符串中的每个指明一个假想的十进制比例位置当小数点不在数据项的数内时它用以指明虚小数点的位置比例位置字符不计入数据项的长度中但要计入决定数值编辑项或数值项的最大数字位数中比例位置字符只能连成一串出现在描述的最左端或最右端因为比例位置字符隐含一个虚小数点如果在字符串的最左端则虚小数点在的左边如果在字符串的最右边则虚小数点在的右边在这种描述中虚小数点字符不管是在左端还是在右端都是多余的字符和插入字符句号不能出现在同一个字符串中当数据要从一种内部表示形式转换成另一种内部表示形式时如果被转换的数据在某些操作中要

33、引用到其字符串中出现符号的数据项这时就使用该数据项的代数值而不使用数据项实际的字符表示这个代数值中隐含了指定的十进制小数点的位置以及由符号指定的出现零的数字位这个代数值的长度就是由字符串表示的数字位数上述的操作包括需要数值型发送运算对象的操作发送运算对象为数值型的语句且其字符串中包含符号发送运算对象为数值编辑型的语句且字符串中包含符号接受运算对象是数值型或是数值编辑型的比较操作其运算对象皆为数值型在所有其他操作中由符号指定的数字位被忽略且不计入运算对象长度中字母在字符串中用以指出有一个正负号但既不必指明它的表示也不必指明它的位置必须是的最左字符不计入用标准数据格式字符方法计算初等项的长度中但当

34、这个初等项的描述款中有指明任选的短语的子句时却为例外见子句字母在字符串中用以指出虚小数点的位置且在字符串中只能出现一次并不表示一个字符位置因此也就不计入初等项的长度中如果虚小数点是在串的最右符号的右边且表示一数字位或比例位则便是多余的字符串中的每一个用来表示一个字符位置该位置含有计算机字符集中任何许可的字符且的个数计入数据项长度字符串中的每一个只用来表示最左领头的数值字符位当那个字符位上的内容为零时就用一个空格字符去替换每一个都计入数据项的长度中字符串中的每一个表示一个字符位置该位置含有一个数字且计入数据项的长度中字符串中的每一个零表示要插入一个数值零的字符位置这个要计入数据项的长度中字符串中

35、的每一个斜杠表示要插入一个斜杠的字符位置这个要计入数据项的长度中字符串中的每一个逗号表示要插入一个的字符位置这个字符位置要计入数据项的长度中当字符句号出现在字符串中时则是一个编辑符号它表示对齐用的十进小数点此外它还表示要把字符插入到这个字符位置上这个字符要计入数据项的长度中如果在段中指定了子句则对于一个给定的程序而言句号和逗号的作用就是互换在这种互换中无论句号和逗号出现在子句的什么地方句号的规则适用于逗号逗号的规则适用于句号这些符号用作编辑正负号的控制符号当使用这些符号时它们表示编辑正负号的控制符号将要存放的字符位置在任何一个字符串中这些符号都是互斥的作为符号用的每一个字符都要计入数据项的长度

36、中字符串中的每一个星号都表示一个领先的数值字符位置当该位置的内容为零时就把一个星号存放到这个字符位置上每一个都要计入数据项的长度中字符串中的货币符表示要放入一个货币符的字符位置字符串中的货币符可用货币符表示或者用由段中的子句所指出的单个字符来表示货币符要计入数据项的长度中编辑规则用子句进行编辑的常用方法有两种即插入或抑制置换可用的插入编辑有四种它们是简单插入专用插入固定插入浮动插入抑制置换编辑有两种用空格抑制置换零用星号抑制置换零可以对一个数据项进行编辑的种类依赖于数据项所属的类型表指出了对给定种类的数据项可以实现的编辑种类表数据项的类型编辑种类字母型无数值型无字符型无字符编辑型简单插入和数值

37、编辑型所有编辑种类但要遵守下面规则中的规则在子句中浮动插入编辑和抑制置换零编辑是互斥的在一个子句中只能有一种置换可以和零抑制一起使用简单插入编辑逗号空格零和斜杠用作为插入字符插入字符计入数据项长度中且表示这个字符将要插入到数据项中的位置如果插入字符逗号是字符串中最后的符号则该子句必须是数据描述款的最后一个子句且其后紧跟以分隔符句号这会导致在数据描述款中出现组合或者如果使用了子句还将会出现连续的两个句号专用插入编辑句号用作为插入字符除作插入字符外它还表示对位用的小数点用作实小数点的插入字符要计入数据项的长度中在同一个字符串中同时使用表示虚小数点的符号和表示实小数点的插入字符两者是不允许的如果插入

38、字符是字符串的最后一个符号则该子句必须是数据描述款的最后一个子句且必须紧跟以句号分隔符这就会导致在数据描述款中出现连续的两个句号或如果使用了子句的话还会出现组合专用插入编辑的结果是在数据项中按字符串所示的同一位置上出现这个插入字符固定插入编辑货币符号和编辑用的正负号控制符号都是插入字符在给定的字符串中只能使用一个货币符号和一个正负号控制符号当使用或时在决定数据项的长度时它们表示两个字符位置并且它们必须表示最右边的两个字符位置这些位置要计入数据项的长度中如果这些字符位置上出现符号或则该大写字母为插入符号若使用或符号则它们必须是最左或最右字符位置并要计入数据项的长度中货币符号一定是最左字符位置且要

39、计入数据项的长度中但它前面可以冠有一个或号固定插入编辑是把插入字符插入到编辑数据项的与字符串所占用的相同位置上根据数据项的值编辑正负号控制符号产生如下表的结果表字符串中的编辑符号结果数据项为正或零数据项为负空格两个空格两个空格浮动插入编辑货币符号和编辑用的正负号控制符号或都是浮动插入字符而且在所给的字符串中这些符号是互斥的在字符串中至少要用两个浮动插入字符构成的串才能指出是浮动插入编辑这串浮动插入字符可以含有任何简单插入符号或者紧接在这个串的右边的简单插入字符这些简单插入字符作为浮动串的一部分货币符号作为浮动插入字符时在浮动插入字符串的紧右边可以出现固定插入字符和浮动插入串的最左字符表示数据项

40、中浮动符号的最左界限浮动串的最右字符表示数据项中浮动符号的最右界限左起第二个浮动字符表示在数据项中可以存储数值数据的最左界限非零数值数据可以替换该界限上全部或其右边的所有字符在字符串中只有两种表示浮动插入编辑的方法一种方法是用插入字符表示小数点左边的一个或全部领头的数值字符位置另一种方法是用插入字符表示字符串中的全部数值字符位置在字符串中如果插入字符仅用在小数点的左边则结果是将一个浮动插入字符放置在紧靠小数点之左的字符位置处或者放置在由插入符号串在字符串的最左边所示数据的紧靠第一个非零数字字符之左的位置处该插入字符之前的字符位置换成空格在字符串中如果所有的数值字符位置都用插入字符表示则至少有一

41、个插入字符位于小数点左边当编辑控制符号或作为浮动插入字符时插入的字符取决于数据项的值表字符串中的编辑符号结果数据项为正或零数据项为负空格在字符串中如果所有的数值字符位置都用插入字符表示则结果取决于数据的值如果这个值是零则整个数据项将只包含有空格如果这个值不是零则结果与插入字符仅在小数点左边的那种情形相同为了避免截断接收数据项的字符串的最小长度必须等于发送数据项的字符数加上要编辑到接收数据项中去的非浮动插入字符数再加对于浮动插入字符如果出现了截断则欲编辑的数据其值为截断后的值见预备知识标准对齐规则抑制零编辑在数值字符位置中前置零的抑制是用字母字符或字符星号指出的它们在字符串中作为抑制符号在一个给

42、定的字符串中这两个符号是互斥的每一个抑制符号都要计入数据项的长度中如果使用则替换字符是空格如果使用星号则替换字符是在一个字符串中使用一个或几个允许符号的串来指明抑制零替换表示当数据项的相关联的字符位置处包含前置零时这些前置的数值字符位置要被替换嵌入在符号串中或直接处于这个串右边的任何简单插入字符都作为这个串的一部分在字符串中只有两种表示抑制零的方法一种方法是用抑制符号表示小数点左边的一个或全部领头数值字符位置另一种方法是用抑制符号表示字符串中全部数值字符位置如果抑制符号仅出现在十进小数点的左边则在数据中与串中符号相对应的任何前置零都要换成替换字符抑制终止于由抑制符号串所示数据中碰到的第一个非零

43、数字或者小数点处在字符串中如果全部数值字符位置都用抑制符号表示且数据项的值又不是零则结果与抑制字符仅用在小数点左边的情形相同如果值是零且抑制符号是则包括任何编辑字符的整个数据项将是空格如果值是零且抑制符号是则除实小数点外包含任何插入编辑符号的数据项将全是在这种情况下实小数点将出现在数据项中符号和货币符用作浮动替换字符时在一个给定的字符串中它们是互斥的优先规则表中表示了在字符串中作为符号用的那些字符的优先次序交点上的指出在一个给定的字符串中该列顶上的符号优先于但不是直接优先于该行左边的符号出现在花括号中的符号是互斥的符号表示货币符号在字符串中至少必须有一个或者至少有或中之一的两个出现非浮动插入符

44、号和浮动插入符号和及其他符号在表中出现了两次每个符号的最左一列和最上一行表示它们位于小数点左边时的用法符号在表中的第二次出现表示它们位于小数点右边时的用法表第二个符号第一个符号非浮动插入符号浮动插入符号其他符号非浮动插入符号浮动插入符号续表第二个符号第一个符号非浮动插入符号浮动插入符号其他符号其他符号子句功能子句允许用不同的数据描述款来描述同一个计算机存储区一般格式层号数据名数据名注意出现在上面格式中的层号数据名和不是子句的组成成分添加进去的目的仅仅是为了便于叙述语法规则若要指明子句它一定要紧接在数据名的后面数据名和数据名的层号必须相同但不能是或在文卷节的层描述款中一定不能使用这个子句该子句不

45、能用在通信节的层描述款中数据名的数据描述款不能包含子句然而数据名却可以隶属于这样的项它的数据描述款含有子句在这种情况下对引用子句中的数据名不能带下标初始定义区和重定义区都不能含有由子句中定义的可变长数据项如果由数据名引用的数据项被说明为外部数据记录或者其层号不为则它包含的字符位置数必须大于等于由该描述款的主项引用的数据项中的字符位置数如果数据名引用的数据项其层号为且没有被说明为外部数据记录则没有上述的限制即使数据名不是唯一的它也不能受限定这是因为在源程序中必须有子句故在数据名不唯一时仍不会出现引用不确定的情况允许相同字符位置的多次重定义相同字符位置的多次重定义必须全部使用初始定义该存储区的那个

46、描述款的数据名给出字符位置新的描述的款中不能包含任何子句但条件名描述款却除外在数据名与数据名的数据描述款之间不能夹有层号小于数据名和数据名的层号的数据描述款字符位置的新描述款必须跟在定义为数据名存区的描述款之后在它们之间不插进定义新的字符位置的描述款在级中数据名不能隶属于包含子句的描述款在级中数据名可以隶属于包含子句的描述款一般规则存储分配开始于数据名直到为数据名或子句引用的数据项分配足够的存区来存放字符位置如果同一字符位置由多个数据描述款同时定义则利用与这些数据描述款相联系的数据名来引用那个字符位置子句功能子句允许对若干初等项进行选择可能重叠组合一般格式数据名数据名数据名注意在上面格式中给出

47、的层号和数据名的目的是为了便于叙述而层号的数据名不是子句的组成部分语法规则对一个逻辑记录可以写出任意多个子句在一个给定的逻辑记录中所有引用该记录中数据项的描述款都必须紧跟在相关联的记录描述款的最后一个数据描述款之后数据名不能用作限定符而只能用与之相关联的层层层或层描述款中的名来受限数据名和数据名在其描述款中不能带有子句也不能隶属于其数据描述款中带有子句的数据项数据名和数据名必须是同一逻辑记录中的初等项名或组项名且它们不能是相同的数据名层描述款既不能重命名另一个层的描述款也不能重命名或层描述款数据名和数据名可以受限包含在数据名和数据名若指明的话范围内的数据项不能是可变长的项字和是等价的数据名描述

48、的存储区的始点一定不能在数据名描述的存储区的始点之左数据名描述的存储区末端必须在数据名描述的存储区末端之右因此数据名不能隶属于数据名一般规则若指出数据名则数据名是一个组项这个组项包括从数据名开始如果数据名是初等项的话或从数据名的第一个初等项开始如果数据名是组项的话到数据名如果数据名是初等项的话或到数据名的最后一个初等项如果数据名是组项的话为止的所有初等项若未指出数据名则数据名的所有数据属性都适用于数据名子句功能子句指出正负号的位置和表示方式当需要显式描述这些性质时就使用这个子句一般格式语法规则子句只能用于其子句含有字符的数值数据描述款或者用于至少含有一个这样的数据描述款的组项使用子句的数值数据

49、描述款其用法必须隐含地或明显地描述为如果指出子句则和那个文卷描述款相关的标有正负号的数值数据描述款必须用子句来描述一般规则子句是选用的如果出现这个子句则它指出应用这个子句的数值数据描述款的正负号的位置和表示方式如果这个子句应用于一个组项则它指出隶属于这个组项的每个数值数据描述款的正负号的位置和表示方式子句只能用于其子句含有字符的数值数据描述款仅指出要出现正负号而不指出正负号的表示法和位置如果子句在一组项中出现且该组项从属于另一指明子句的组项则下属组项中的子句获得与此组项同样的优先级如果子句出现在数值型初等数据描述款中且该描述款又隶属于含有子句的组项则下属的数值型初等数据描述款中的子句具有和该数据描述款同样的优先级其子句含有字符而又未使用子句的数值数据描述款也有一个正负号但这个既不指明正负号的表示法也不指明它的位置在这种缺省的情况下实现者要定义正负号的位置和表示法下面的一般规则到不适用于这样一些带正负号的数值数据项如果不出现任选的短语则认为正负号与初等数值数据项领头或结尾的一个数字位置相关联字符串中的字母不计入项的长度中按标准数据格式字符计算实现者要确定构成数据项的有

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

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1