GB T 9543-1988 程序设计语言 PL 1通用子集.pdf
《GB T 9543-1988 程序设计语言 PL 1通用子集.pdf》由会员分享,可在线阅读,更多相关《GB T 9543-1988 程序设计语言 PL 1通用子集.pdf(34页珍藏版)》请在麦多课文档分享上搜索。
1、中华人民共和国国家标准程序设计语言通用子集发布实施中华人民共和国电子工业部发布中华人民共和国国家标准程序设计语言通用子集中华人民共和国电子工业部批准实施本标准等同采用国际标准程序设计语言通用子集引言范围与目的本标准是程序设计语言中所规定的全语言的一个真子集本子集设计得具有下列特点本子集是适用于商业数据处理科学计算和系统程序设计应用领域的一个通用程序设计语言本子集既足够小以利于广泛的实现而又足够大以获得广泛的应用本子集与全相比容易学习和理解实现的代价小并能更经济地利用计算机资源用本子集编制的程序比用全语言编制的程序更易于移植由于本子集比全语言简单且限制了自由度因而用本子集编制的程序比用全语言编制
2、的程序包含编程错误的可能性小现代技术使语言子集能在多种只具备有限控制程序软件的中小型硬件配置上包括大多数小型计算机和某些微型计算机系统上实现标准子集的一个主要优点是能减少或消除在上述机器上各种语言实现间的不相容性本子集既为程序也为程序员在各种计算机间和操作系统间提供了高度的可移植性由于本子集是全语言的一个真子集也保证了子集的实现与全语言实现间高度的可移植性各种计算机应用计算机系统和用户都能从这个通用著名和广泛流行的标准语言中获得益处本子集拓宽了它们的基础引用标准程序设计语言主要设计决策的准则对本子集中包含的每一语言设施均要付出许多方面的代价包括设计文件编制学习记忆编译执行和维护等方面的代价在本
3、子集设计过程中对每一语言设施均权衡了保留它需付出的代价与删除它可能带来的弊端如使用的流行程度用替代构件编程的难易程度替代构件的效率高低以及使用替代构件所损失的易读性等某些设施由于容易造成编程错误或者实现和使用这些设施的代价与它们的使用价值相比太高容易作出从子集中删除它们的决策而另一些设施特别是代价与使用价值均很高的设施较难决策去留采用说明中没有引用标准但是在实施本标准时必须查阅全集内容故在此处增加了一条引用标准现将在本子集建立过程中的主要设计决策及决策的准则列举如下以便于读者了解集中保留或删除某种设施的理由由于语言中的数据类型种类对目标代码模式个数和支持程序执行所需要的库程序数量多少影响很大在
4、子集中删除了极少用到的数据类型使子集中的标量数据类型数目减少了将近一半被删除的数据类型中半数以上是复型数据类型和极少用到的形象数据类型尽管数组值表达式被公认在科学计算应用中有很高使用价值但因某代价太高而从子集中删去了结构值表达式和混合聚集类表达式远不如数组表达式有用因而也从子集中删除子集中格式说明限为常数值并删除了数据型的流式输入输出以减少支持子集所需的运行时代码量这些限制也简化了编译程序从而节省了实现和使用子集的开销子集中未保留和语句这是因为它们的使用频率较低而保留它们会大大增加编译程序复杂度和语言复杂度在子集中用户定义的名字必须用申述语句或者用标号前缀显式申述以减少编程错误和改善程序的易读
5、性这些限制也降低了实现的复杂度子集中从一种数据类型至另一种数据类型的隐式转换限于出现在该转换极可能获得期望结果的上下文中这种限制消除了一种常见的编程错误源子集中限制了能显式表记的异常情况状态以降低实现的复杂性而又保留语言异常处理的大部分能力为使子集能在较大范围的硬件上有效实现子集中不保留异常状态前缀因为可由前缀控制的异常状态过于自由且对某些机器不太合适期望可选择的在运行时对错误的检测能通过对于某一具体实现更合适的编译时选择或交互式排错系统来完成子集中对语句作了简化使之更易于学习和使用又不致引入编程错误除受控类外的存储类均保留在子集中全语言中所允许的可变范围也在子集中保留删除受控类是由于它与有基
6、类在很大程度上是冗余的而保留可变范围的原因则是无其他合适的语言设施替代由于实现的代价与其使用价值和使用频率相比太高在子集中删去了选择仅对简单定义和串覆盖定义可有属性对于简单定义所有变量的范围必须一致子集中不允许对有基变量引用使用和星号下标因为它们对用户和实现者而言复杂度均太高本子集的非形式化描述本条用于帮助读者理解本子集的内容但不作为子集的定义本子集的实际定义在本标准的第章和的有关部分给出程序结构子集中保留的设施包括特殊字符在内的全字符集注释标识符十进制算术常数和简单串常数关键字的略写内部和外部过程函数过程和递归选择申述语句分程序和由引导的语句组格式语句带标号的可执行语句语法限制一个语句不准加
7、多个标号前缀申述语句必须不带标号前缀一个标号前缀最多只能有一个下标在过程语句或格式语句中出现的标号前缀不得带下标一个语句不得结束多个由引导的语句组或分程序每一结束标号必须与对应的语句语句或语句的标号前缀相匹配在语句的选择属性静态变量或静态结构成员申述中指定的串长度必须是整型常数静态变量或静态结构成员的上界和下界均必须由整型常数或带正负号的整型常数组成在参数或参数结构成员申述中指定的必须是整型常数或星号上下界说明必须是星号或由整型常数或带正负号的整型常数组成算术常数中不得包含默契的消隐字符或在注释体内不得再嵌入字符对语义限制所有函数均须产生标量值子集中删除的设施语句语句异常状态前缀二进制常数和重
8、复串常数语句中的选择程序控制子集中保留的设施语句语句和函数引用语句语句语句和空语句语句语句语句和语句下列异常状态和语法限制和程序单位不得加标号语句不得包含逗号表一个过程或函数引用不得有一个以上的变元表语义限制语句的控制变量必须是整型或指针选择和选择的值必须是整数语句与子句中表达式的值必须是长度为的二进位串一个语句或语句只能命名一个异常状态存储区不连通的数组不能作为变元传递处理异常状态的程序单位不得将控制返回断点在异常处理程序单位中不得使用语句子集中删除的设施排错用的异常状态程序员命名的异常状态输入输出异常状态其他异常状态语句中的和选择存储控制语句子集中保留的设施赋值语句包括受限形式的数组赋值和
9、结构赋值和语句语法限制一个赋值语句只能对一个目标赋值一个语句或语句只能分配或释放一个数据项在语句中必须给出选择语义限制若一个赋值语句将一个串值赋于某个目标则不得从的左边开始且与的任何部分重叠子集中删除的设施赋值语句中的选择输入输出子集中保留的设施语句和语句记录型输入输出语句和流式输入输出语句和以及和选择格式说明和文卷属性和文卷属性可在语句或在语句中规定语法限制一个语句或语句只能打开或关闭一个文卷语句和语句只能包含一个输入输出表和最多一个格式表格式表不得含有表达式或变量引用和格式项中不得包含第三个值记录型输入输出语句的选择和选择不得引用二进位对齐型的变量语句中必须有选择文卷常数不能带维数语义限制
10、或输入输出语句中的表达式调用了某个导致输入输出到当前文卷的过程则该过程不允许返回到被调用点注意作为执行语句的结果而进入的异常处理程序单位可以与语句写到同一文卷因为该异常处理程序单位的进入并非表达式求值的结果子集中删除的设施语句语句中的选择和语句的选择语句中的选择语句中的选择格式项语句中的选择属性与形象子集中保留的设施下列属性和形象字符和形象插入字符和语法限制形象限于定点十进制形象的一个大子集下列属性得到支持但不作为语言中的关键字和仅对串变量可申述属性属性只能以串常数算术常数和内部函数作为初值属性的重复因子必须是整数只能对静态变量或静态结构成员进行初始化比例因子不能规定为负数仅对定点十进制变量可
11、规定非零比例因子语义限制程序中使用的每一名字的数据类型必须在语句中说明或者通过将名字作为标号前缀或内部函数名使用来说明对属性的每个参数语句的选择和属性的返回值均须说明数据类型属性中给出的引用必须标识一个与所定义变量的类型和范围均相同的变量或者所定义变量和基变量必须适用于串覆盖定义子集中删除的设施属性和形象字符和定义语句中的选择内部函数与伪变量子集中保留的设施内部函数和采用说明根据信息处理交换用七单位编码字符集的规定将国际标准中的货币符号改为我国货币符号伪变量和语法限制内部函数和必须恰有两个变元伪变量只能出现在赋值语句的左边语义限制对许多种内部函数的变元均有限制以防止函数产生不支持的数据类型或者
12、便于在编译时对函数求值内部函数不得产生聚集型结果子集中删除的设施内部函数和伪变量和表达式子集中保留的设施全部中缀运算符和全部前缀运算符和定位限定符带括号的表达式下标引用和函数引用语法限制一个过程或函数引用只能带一个变元表语义限制所有的运算符均须产生标量值任何表达式均不得产生比例因子为负的定点十进制结果或加比例的定点二进制结果对定点二进制操作数不得使用运算符可用内部函数代替下标和范围必须求值为整数算术型运算符和内部函数必须使用算术型或形象操作数二进位串型运算符和内部函数必须使用二进位串操作数字符串型运算符和内部函数必须使用字符串型操作数关系运算符必须具有两个算术型包括形象操作数或者其两个操作数具
13、有相同的数据类型唯一允许的一种聚集升格情况是形式为引用表达式的赋值语句其中引用表记一个连通的标量数组表达式是一个标量表达式在形式为引用引用的赋值语句中当两个引用都是聚集时两者的数据描述必须相同且都表记连通的存储区子集中删除的设施无本标准的编排格式条的材料用于帮助读者理解本子集的内容但并不构成子集的定义本子集的实际定义在本标准的章和的有关部分给出为了理解子集程序的翻译和解释必须熟悉定义全语言所用定义方法对该方法的介绍和解释在的第章中给出简言之该语言是通过一个能翻译和解释程序的抽象机器来定义的本子集采用同样的机器来决定子集程序的意义本标准的第章包含用于决定用子集语言编制的程序的有效性和意义的算法该
14、算法以用符号表表示的符号序列列作输入此符号序列代表一个外部过程即不包含在另一过程中的过程为了判定这个符号表的有效性使用在中所说明的语法分析操作对它进行分析但为该操作提供的是有限制的子集文法而不是全语言的文法若语法分析成功则用的定义程序操作翻译和验证该程序以决定其意义在此翻译和验证过程中必须满足本标准第章所给出的附加限制本标准的第章包含用于定义一系列符合子集语法的过程的三级文法这些文法是用于定义全语言的具体语法的有限制的形式为了与全语言的文法有所区别在子集文法中使用元符号和表记分类名本标准参照在中定义的操作和语法分类由和括起来的分类名是本标准第章给出的具体语法所定义的分类其它分类名均在中定义形式
15、定义要判定某给定程序的有效性和意义对构成该程序的所有外部过程实施下列步骤从本定义之外的来源获取构成该程序的每一外部过程的字符序列构造成一个符号表对每一外部过程执行语法分析操作过程操作以获得该过程的语法分析树若此操作失败则该过程不符合子集语法执行定义程序操作以决定当用有效数据运行该程序时它对于的合法性和意义若该程序违反本标准第章中所列出的任何限制则此程序对于子集是不合法的文法本章所给出的三级文法对应于中用于全语言具体语法的三级文法这三级文法与中所定义的语法分析操作一起定义了合平子集语法的一系列过程子集文法与全语言文法一样是容错的一个程序的真实有效性须由本章所给出的文法中的定义程序操作和第章中列出
16、的限制来决定条中过程的文法是中过程文法的子集本标准中产生式规则的编号与中所用的编号相同编号加号标记的产生式规则的右边与中对应的产生式规则不同定义子集所不须用到的全语言产生式规则未在本标准中列出用于书写这些文法的产生式规则的元语言的定义参见高级文法过程标识符过程语句程序单位表结束部分程序单位申述语句标识符格式语句过程可执行的程序单位可执行的程序单位前缀由引导的语句组开始分程序异常处理语句如果语句可执行的单个语句如果语句如果子句可执行的程序单位平衡的程序单位可执行的程序单位平衡的程序单位可执行的单个语句由引导的语句组开始分程序异常处理语句如果子句平衡的程序单位平衡的程序单位由引导的语句组执行语句程
17、序单位表结束部分开始分程序开始语句程序单位表结束部分异常处理语句异常状态名异常处理程序单位异常处理程序单位可执行的单个语句开始分程序结束部分语句名结束语句中级文法句子前缀子句表单个语句否则部分否则部分前缀子句表单个语句前缀子句前缀如果子句异常状态名前缀语句名如果子句表达式单个语句申述语句标识符格式语句标识符过程语句未匹配的前缀结束语句可执行的单个语句开始语句未匹配的执行语句未匹配的注未匹配的仅为高级语法分析操作所用可执行的单个语句分配语句赋值语句调用语句关闭语句删除语句释放语句取语句转向语句空语句打开语句送语句读语句返回语句变状态语句重写语句置状态语句停止语句写语句语句名标识符带正负的整数带正
18、负号的整数整数申述语句逗号分隔的申述表申述层号标识符逗号分隔的申述表维数后缀属性表层号整数维数后缀逗号分隔的上下界说明上下界说明下界上界下界范围表达式上界范围表达式范围表达式表达式属性数据属性引用引用环境说明初值说明任选项数据属性精度最大长度最大长度精度逗号分隔的描述表精度数字位数形象返回值描述符精度数字位数比例因子数字位数整数比例因子整数最大长度范围表达式描述层号维数后缀数据属性表限制至少须有一个子结点形象简单字符串常数环境说明环境规格说明环境规格说明由实现定义任选项任选项规格说明任选项规格说明由实现定义初值说明逗号分隔的初值元素表初值元素简单串常数重复因子算术常数重复因子重复因子简单串常数
19、算术常数重复因子整数过程语句入口信息入口信息逗号分隔的参数名表返回值描述符任选项参数名标识符返回值描述符数据属性表开始语句执行语句当选择执行规格执行规格引用规格规格表达式终值步长说明重复选择当选择终值步长说明终值选择步长选择步长选择终值选择终值选择表达式步长选择表达式当选择表达式重复选择表达式结束语句标识符调用语句引用返回语句表达式转向语句引用空语句变状态语句异常状态名置状态语句异常状态名异常状态名命名的输入输出异常状态命名的输入输出异常状态输入输出异常状态引用输入输出异常状态停止语句赋值语句引用表达式分配语句分配对象分配对象标识符置选择置选择引用释放语句释放对象释放对象定位符限定词标识符打开
20、语句单项打开要求单项打开要求文卷选择标题选择行长选择页长选择环境说明文卷选择引用标题选择表达式行长选择表达式页长选择表达式关闭语句单项关闭要求单项关闭要求文卷选择删除语句文卷选择键选择置指针选择引用读语句文卷选择去向选择置指针选择键选择键去向选择去向选择引用键选择表达式键去向选择引用重写语句文卷选择来源选择键选择写语句文卷选择来源选择键来源选择来源选择引用键来源选择表达式取语句取文卷取串取文卷文卷选择跳行选择输入规格说明跳行选择表达式取串表达式输入规格说明送语句送文卷送串送文卷文卷选择跳行选择行选择输出规格说明行选择表达式送串引用输出规格说明输入规格说明表型输入编辑型输入表型输入逗号分隔的输入
21、目标表输入目标引用逗号分隔的输入目标表执行规格编辑型输入编辑型输入对编辑型输入对逗号分隔的输入目标表逗号分隔的格式说明表输出规格说明表型输出编辑型输出表型输出逗号分隔的输出源表输出源表达式逗号分隔的输出源表执行规格编辑型输出编辑型输出对编辑型输出对逗号分隔的输出源表逗号分隔的格式说明表格式说明格式项格式重复格式重复格式重复因子格式项逗号分隔的格式说明表格式重复因子整数格式项数据格式控制格式远端定义的格式数据格式实型格式形象格式串格式实型格式定点格式浮点格式定点格式整数整数浮点格式整数整数形象格式形象串格式字符格式二进位格式字符格式整数二进位格式基数因子整数控制格式制表格式行格式间隔格式跳行格式
22、列格式制表格式整数行格式整数间隔格式整数跳行格式整数列格式整数远端定义的格式标识符格式语句逗号分隔的格式说明表表达式第七层表达式表达式第七层表达式第七层表达式第六层表达式第七层表达式第六层表达式第六层表达式第五层表达式第六层表达式比较运算符第五层表达式比较运算符第五层表达式第四层表达式第五层表达式第四层表达式第四层表达式第三层表达式第四层表达式第三层表达式第三层表达式第二层表达式第三层表达式第二层表达式第二层表达式基本表达式前缀表达式带括号的表达式第一层表达式第一层表达式基本表达式带括号的表达式第二层表达式前缀表达式前缀运算符第二层表达式前缀运算符带括号的表达式表达式基本表达式引用常量引用定位
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB 9543 1988 程序设计语言 PL 通用 子集
