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