GB T 4092.9-1992 程序设计语言COBOL 程序分段模块.pdf

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

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