说明:收录全网最新的团体标准 提供单次或批量下载
L 74 中华人民共和国国家标准 GB/T 9542—1988 ISO 6160—79 程序设计语言PL1 Programming languages PL/1 1988-04-14 发布 1988-10-01实施 中华人民共和国电子工业部 发布 中华人民共和国国家标准 程序设计语言 PL GB/T9542 1988 ISO 6160—79 Programming languages PL/1 本标准等同采用国际标准ISO6160一79《程序设计语言PL/1》。 1范围和概貌 1.0范围 本标准定义计算机程序设计语言PL/1。它将作为具有权威性的参考文件而不是简单的入门介绍。 定义通过规定一个翻译和解释PL/1程序的概念机器来完成。1.1条简要介绍了语言中所包含的语 句和数据类型、本标准的结构与使用方法、以及定义语言的方法,1.2条描述本标准中的概念机器与实 际实现之间的关系,1.3条给出了所用到的表示法的详细说明。从1.4条开始,包括第2章至第9章,是 定义的主体, 1.1PL/1定义的非形式化指南 1.1.1PL/1提要 -个PL/1程序由一组书写成一系列语句的过程组成。在程序翻译过程中,可以使用%INCLUDE 构件并入其他来源的正文。 PL/1的所有语句类型分组综述如下。分组的原则是便于了解整个语言的概貌并与本标准的组织 有关。 结构类: PROCEDURE (过程)语句 ENTRY (入口)语句 BEGIN (开始)语句 DO (执行)语句 END (结束)语句 申述类: DECLARE (申述)语句 DEFAULT (默契)语句 FORMAT (格式)语句 流程控制类: CALL (调用)语句 RETURN (返回)语句 IF (如果)语句 GO TO (转向)语句 空语句 STOP (停止)语句 ON (异常处理)语句) REVERT (变状态)语句 中断处理 SIGNAL (置状态)语句 存储类: ALLOCATE (分配语句 中华人民共和国电子工业部1988-04-14批准 1988-10-01实施 1 GB/T 9542—1988 FREE (释放)语句 赋值语句 输入输出类: OPEN (打开)语句 CLOSE (关闭)语句 GET (取)语句! 流式输入输出 PUT (送)语句) READ (读)语句 WRITE (写)语句 LOCATE (定位)语句>记录型输入输出 REWRITE (重写)语句 DELETE (删除)语句 下列类型的数据可用名字来申述。数据可以是单值的,也可以是数组或结构形式的聚集: 算术型 或PICTURE(形象) CHARACTER(字符型) BIT (二进位型) AREA (区域型) ENTRY (入口型) FILE (文卷型) FORMAT (格式型) LABEL (标号型) OFFSET (位移型) POINTER (指针型) 值可通过使用一组专门的运算符和内部函数及用户定义的过程书写的表达式来计算。大部分内部 函数既适用于单值又适用于聚集值,用户定义的过程也可运算和返回聚集值或单值数据。 1.1.2本定义的形式 概念PL/1机器是一个处理器,它具有一组施加于存放在其存储器内信息的操作。以算法形式规定 的这些操作,可以看作是一单个算法,即实现整个翻译和解释处理的“定义程序”算法的组成部分。存储 器内的信息均以树结构的形式存放。 定义算法操作如下: 表示PL/1外部过程(即不被任何其他过程所包含的过程)的符号序列先由一个翻译器处理。处理 过程包括系统地分析,变换和证实每一个外部过程。分析首先使用称为具体语法的文法来产生以树结构 表示的外部过程的具体形式。具体形式文被变换为抽象形式。抽象形式是一棵满足抽象语法的树。抽 象语法设计得更便于解释。然后对抽象形式作进一步的证实。 接着由解释器进行程序在应用于给定初始数据集时的语义处理。数据集是PL/1机器存储器的一 部分,是满足机器状态语法的树,正是数据集的改变序列构成了所定义的语义。 除翻译和解释所有按定义有效的程序外,PL/1机器还检测有无对于与翻译和解释过程中所执行的 算法中的词汇“必须”或“必须不(不得)”有关条文的违反。将这种违反称为“非标准”。标准与某个具体 实现之间的关系在1.2条中描述。 定义方法的轮廓如下: 2 GB/T 9542—1988 表示外部过程 的符号表 程序树 器 (抽象形式) 解释器 个 数据集 把抽象机看成下列形式也是有帮助的,翻译器和解释器均可在该抽象机上运行: 操作 (不变的算法集) 存储器 (可变的机器状态树) 机器状态 符号表 数据集 从机外来的输入出现在翻译器和解释器的初始化阶段。在解释过程中数据集可以改变。然而,抽象机未 定义任何输出,因为按照本定义的意图,数据集被作为机器存储器的一部分,即在需要时是“联机”的。 1.1.3章条结构一览表 1.顶层机器状态和操作 2.具体语法 3.抽象语法 4.翻译器 5.解释状态十顶层解释器 6.流程控制 7.存储与赋值与解释状态的三部分有关 8.输入输出 9.表达式 第5章至第8章用的公用子程序 第1章所叙述的操作用于驱动翻译器和解释器。 解释器的操作由第5章至第9章中的全部操作组成。在第5章所述的初始化后,有关的操作将根据 须解释的语句类型,分别在第6、7、8章中叙述。所有上述章节在需要时均将使用第9章所述的操作。 每章的条款按逻辑组织,可参考目录以了解章节结构的概貌。 推荐读者先完整地阅读并仔细理解第1章。随后,可以系统地阅读整个标准,也可以利用对整体结 构的了解和合理地使用索引,在本标准中查找针对某一专门问题的答案。在此,对每一章都举一个本标 准可解答的样本问题为例子,以解释后一种用法。 GB/T 9542—1988 第2章包含具体语法的定义。具体语法由以具体树形式描述PL/1构件有效形式的规则组成,它允 许某些构件在语法上认为正确但无实际意义,从这个意义上说,具体语法是容错的。 问题: 语句GETLIST(A(I,J)DOI=1TOM,N);是否正确? 答案: 首先应检查语句有无语法错误。查取语句的索引项可知它属于中级语法。研究规则CM110、 111、119、122和123揭示:格式逗号分隔的输入目标表D0执行规格需外加一对括号以避 免本例中固有的二义性。取决于要把最后一个输入值赋于N或A(N,J),正确的格式应为: GET LIST ((A(I,J)DO I=1 TO M),N); 或 GET LIST ((A(I,J)DO I=1 TO M,N)); 第3章包含抽象语法的定义。抽象语法描述的许多部分与具体语法中的对应部分类似。抽象语法 中的名字选择也与具体语法中的相应名字相似以尽可能使两个语法之间的关系更为明显。 问题: READ(读)语句的KEYTO(键去向)选择是否可以指定以某变量的子串为键? 答案: 关于键去向选择的具体语法只规定必须指定用。然而,抽象语法说明了在翻译器处 理完全部申述后的程序形式,并可将每个引用与适当的申述结合,使差别更为细微。有关键去向 选择的规则A117中包含“目标引用标量与字符)”。规则A179说明这允许一个<伪变量引 用>,例如SUBSTR(子串)伪变量。加括号的限制“(标量与字符)”表示它必须是一个字符值的单 个目标(不得为数组或结构)。 使用索引检索翻译器和解释器未发现进一步的限制。因而答案是:可以,但该子串必须 是字符型的标量。 第4章定义了翻译器。翻译器将每一个独立的PL/1程序部分(外部过程)从所提交的字符串形式 翻译为树形式并添加到程序树中。这个处理过程包括对每一外部过程使用具体语法进行分析获得一棵 具体树,插入遗漏的任选项以将该具体树的属性集补完整,然后将该具体树转换为抽象树,最后证实整 个程序。一且构造完成,抽象树不再修改。 4 GB/T 9542—1988 第2章包含具体语法的定义。具体语法由以具体树形式描述PL/1构件有效形式的规则组成,它允 许某些构件在语法上认为正确但无实际意义,从这个意义上说,具体语法是容错的。 问题: 语句GETLIST(A(I,J)DOI=1TOM,N);是否正确? 答案: 首先应检查语句有无语法错误。查取语句的索引项可知它属于中级语法。研究规则CM110、 111、119、122和123揭示:格式逗号分隔的输入目标表D0执行规格需外加一对括号以避 免本例中固有的二义性。取决于要把最后一个输入值赋于N或A(N,J),正确的格式应为: GET LIST ((A(I,J)DO I=1 TO M),N); 或 GET LIST ((A(I,J)DO I=1 TO M,N)); 第3章包含抽象语法的定义。抽象语法描述的许多部分与具体语法中的对应部分类似。抽象语法 中的名字选择也与具体语法中的相应名字相似以尽可能使两个语法之间的关系更为明显。 问题: READ(读)语句的KEYTO(键去向)选择是否可以指定以某变量的子串为键? 答案: 关于键去向选择的具体语法只规定必须指定用。然而,抽象语法说明了在翻译器处 理完全部申述后的程序形式,并可将每个引用与适当的申述结合,使差别更为细微。有关键去向 选择的规则A117中包含“目标引用标量与字符)”。规则A179说明这允许一个<伪变量引 用>,例如SUBSTR(子串)伪变量。加括号的限制“(标量与字符)”表示它必须是一个字符值的单 个目标(不得为数组或结构)。 使用索引检索翻译器和解释器未发现进一步的限制。因而答案是:可以,但该子串必须 是字符型的标量。 第4章定义了翻译器。翻译器将每一个独立的PL/1程序部分(外部过程)从所提交的字符串形式 翻译为树

.pdf文档 GB-T 9542-1988 程序设计语言PL 1

文档预览
中文文档 5 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共5页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
GB-T 9542-1988 程序设计语言PL 1 第 1 页 GB-T 9542-1988 程序设计语言PL 1 第 2 页 GB-T 9542-1988 程序设计语言PL 1 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2026-01-05 05:42:42上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。