GB T 7591-1987 程序设计语言Pascal.pdf
《GB T 7591-1987 程序设计语言Pascal.pdf》由会员分享,可在线阅读,更多相关《GB T 7591-1987 程序设计语言Pascal.pdf(59页珍藏版)》请在麦多课文档分享上搜索。
1、中华人民共和国国家标准程序设计语言发布实施国家标准局发布中华人民共和国国家标准程序设计语言国家标准局批准实施引言本标准等效采用国际标准计算机程序设计语言规格说明本标准通过规定处理程序和相符程序的要求来规定计算机程序设计语言的语法和语义对处理程序和程序均定义了两级规格本标准不规定程序及其数据的大小或复杂性它们或者会超出指定数据处理系统的能力或者会超出特定处理程序的能力以及在超出相应限制时所要采取的动作能支持处理程序实现的数据处理系统的最低要求激活程序分程序的方法或对于变换和执行程序所处环境加以控制的命令集合供数据处理系统用的变换程序的机制报告差错或提出警告的方法出版供人阅读的程序的印刷表示引用标
2、准信息处理交换用的七位编码字符集定义本标准采用下列定义注为使语言概念醒目本标准有些术语在其首次出现时用黑体字印刷差错程序对本标准要求的违反但允许处理程序不予查究注若构造一个程序对其是否违反本标准需要了解该程序所读的有关数据资料或由实现所定义的特性的有关实现定义资料凡违反要求的则归类为差错处理程序可以不需要有关资料就能报告这种要求的违反但总有一些情况需要一个执行或模拟执行过程或需要用有关资料的证明过程无需有关资料就能验证的要求不归类为差错处理程序应该指望尽可能多而全地查找差错若查错给实现带来额外的负担或实现达不到最高质量便允许实现略去查错扩充对本标准第章的修正除禁止使用一个或多个特殊的标识符拼写
3、外既不应使遵从本标准要求的任何程序成为无效如条所定义的也不应改变任何和实现有关的特性的状态和差错由实现所定义的成分可以随处理程序而异但对任何特定的处理程序而言都要有定义和实现有关的成分可以随处理程序而异但对任何特定的处理程序而言不一定非定义不可处理程序处理程序是一个系统或一种机制它接受程序作为输入使其作好执行的准备利用数据执行如此定义的进程以产生结果注处理程序可由下列部分组成解释程序编译程序和运行系统或其他机制以及有关的宿主计算机及操作系统或能起同样作用的其他机制例如单独一个编译程序并不构成处理程序定义性的约定本标准中用来规定语言构造的语法的元语言以巴科斯瑙尔范式为基础为了便于描述和可用迭代产
4、生式代替递归产生式对该范式的表示法作了一些修改表列出各种元符号的含义语言构造的进一步规格说明用文字描述给出在某些场合下用等价的程序片断给出在第章里作为需求标识符定义的任何标识符在程序片断里出现就表记相应的需求实体这种程序片断在其他方面都受本标准有关要求的约束表元语言符号元符号含义定义为另一种定义为或者定义结束的次或次出现的次或多次出现组合不是就是终极符元标识符非终极符元标识符以汉文表示一个产生式里一串终极符和非终极符隐含了它们最终表示的正文并置在第条里这种并置是直接的不应插入任何字符在本标准的其他部分中并置与第条的规则相一致构成程序所需要的字符应是为构成在第条里定义的分隔符和记号所隐式要求的那
5、些字符在表示终极符之间或非终极符之间关系时使用的词的中包含和最紧包含具有下列含义的指的是直接出现在定义的一个产生式中中的的的同义语包含的指的是任何直接或间接导出的最紧包含的指的是包含的但此不包含另一个包含的在第章里为规定某些语法要求使用了这些语法约定在某些语义规格说明的上下文中也使用这些约定采用说明在中元标识符是以字母开始的字母和连字符的序列规格注有两级规格级和级级不包含可调节数组参数级包含可调节数组参数处理程序一个遵从本标准要求的处理程序应该是如果它遵从级则按第章中定义的含义接受第章中规定的全部语言特性但和除外如果它遵从级则按第章中定义的含义接受第章中规定的全部语言特性为实现第章中规定的语言
6、特性不要求程序中包含替换或附加的语言元素附有一个文件以定义所有由实现所定义的特性对于程序中未被指明为差错的这种违反要能判定它是否违反本标准的要求并能向该处理程序的用户报告判定结果在处理程序未考察整个程序的情况下当所考察的程序正文中未发现有违反时要通知用户此判定是不完全的至少按下列方法之一处理每个指明为差错的违反在文件附件中应陈述这种差错未予报告在程序准备执行期间处理程序应报告可能出现的差错在程序准备执行期间处理程序应报告所出现的差错在程序执行期间处理程序应报告所出现的差错并终止此程序的执行如果指明为差错的违反是按的方法处理的则应在文件附件的单独一节中给出引用这样处理的注释文件附件应分别陈述第章
7、中禁止或未规定的但为本处理程序接受的任何特性这种扩充应称作为对规定的的扩充能以类似于为处理差错而规定的方式处理任何这种扩充的任何使用能以类似于为处理差错而规定的方式处理和实现有关的特性的任何使用注第条中使用能这个字是为了允许实现供用户控制报告的开关当由于表格限制等原因而使编译异常终止时象未发现违反但查看不完全这类不完全的判定将满足的要求按照类似的方法对一个未全面查看过的程序解释执行或直接执行的处理程序也可报告为一个不完全判定一个声称全部或部分遵从本标准要求的处理程序只能用下列术语来表达规格声明或是由处理程序产生并作为使用它的结果或是包括在文件附件里若处理程序在各方面都遵从本标准的要求则规格声明
8、为本处理程序遵从的数级要求如果处理程序不是全部而是部分地遵从本标准要求那么就不能用上面的声明而代之以如下的规格声明本处理程序遵从的数级要求但有下列例外后接关于该处理程序未遵从本标准要求的一张参照表或一张完整清单在这两种声明中正文本处理程序应换成一个用以标识该处理程序的无歧义的名字正文数应换成适当的级数注不完全遵从本标准要求的处理程序并不要求在规格声明中给出它们不遵从的全部细节只要扼要地引用文件附件就够了该文件附件含有一张足够详尽地列出这些缺陷的完整清单程序一个遵从本标准要求的程序应该是如果它遵从级则仅仅使用第章中规定的那些语言特性但和除外如果它遵从级则仅仅用第章中规定的那些语言特性不取决于对那
9、些和实现有关的特性所作的任何特定解释注一个遵从本标准要求的程序可以依赖特定的由实现所定义的值或特性对合格程序和合格处理程序的要求而言合格程序经过合格处理程序处理后产生的结果并不要求总是相同的随程序而言它们可以相同也可以不同阐明这一点的一个简单程序是要求词法记号注第条里给出的语法描述了由字符构成词法记号的规则和这些记号的分隔因而并不遵守与本标准其余部分的语法相同的规则概述构造程序使用的词法记号分为特定符号标识符指示字无正负号数标号和字符串在字符串参看外任何地方出现的任何字母的表示大小写字体差别等就程序意义而言是无关紧要的字母数字特定符号特定符号是有特殊意义的记号用来界限本语言的语法单位特定符号字
10、符号字符号标识符标识符可以任意长标识符的每个字符对于标识符的区分而言都是有意义的任何标识符的拼写都不能与任何字符号相同指明为需求的标识符有特定意义参看和标识符字母字母数字例子指示字指示字仅在过程说明或函数说明里出现指示字是唯一的需求指示字参看和指示字的拼写不能与任何字符号相同指示字字母字母数字注作为一种扩充许多处理程序都提供指示字用来指明与该过程首部或函数首部对应的过程分程序或函数分程序是外部于程序分程序的通常它们以一种输入给处理程序的形式或由处理程序产生的形式存放在程序库中数一个无正负号整数是用十进记数法表记的一个整数类型值参看一个无正负号实数是用十进记数法表记的一个实数类型值参看比例因子前
11、面的字母意指乘以的幂无正负号整数表记的值应在到的闭区间中参看和有正负号数有正负号整数有正负号实数有正负号实数正负号无正负号实数有正负号整数正负号无正负号整数无正负号数无正负号整数无正负号实数正负号无正负号实数无正负号整数小数部分比例因子无正负号整数比例因子无正负号整数数字序列小数部分数字序列比例因子有正负号整数数字序列数字数字例子标号标号是数字序列用它们字面的整数值来区分并应在到的闭区间中标号数字序列字符串只包含一个串元素的字符串表记需求字符类型的一个值参看包含一个以上串元素的字符串表记串类型的一个值参看串类型的成分数目与字符串包含的串元素个数相同每个串字符都表记需求字符类型的一个由实现所定义
12、的值而且这种值不能由多于一个的串元素表记字符串串元素串元素串元素撇号映象串字符撇号映象串字符由实现所定义的字符集中的一个字符注习惯上把撇号映象看作是撇号字符的替代撇号字符不能是一个串字符例子记号分隔符若左花括号不在字符串或注解内部出现则如下构造任何不包含有花括号的字符和行分隔符序列是一个注解用空格代替注解不会改变程序的含义注解空格字符串中的空格除外和相邻行的分隔都应看作是记号分隔符在任何两个相邻的记号之间或程序正文的第一个记号之前都可出现零个或多个记号分隔符任何由标识符字符号标号或无正负号数组成的两个相邻记号之间应至少有一个分隔符记号内部不应出现分隔符词法记号的替换到中给出了词法记号和分隔符的
13、表示这种表示构成这些记号和分隔符的基准表示基准表示用于程序交换为了便于在不支持基准表示的处理程序中使用定义了下列替换在字符集中有需求字符的所有处理程序既提供基准表示又提供替换表示相应的记号或分隔符不予区分记号的替换表示是基准记号替换记号施以下列一个或两个替代的所有注解形式应都是注解的替换形式界限字符替换的界限字符对注注解可以开始而以结束或者以开始而以结束若一个注解中出现序列则它等价于并标志注解的结束因为该替代仅适用于界限字符也可参看分程序作用域和激活分程序一个最紧包含其中出现标号的标号说明部分的分程序应恰好最紧包含一个含有此标号的语句在分程序标号说明部分中一个标号的出现应作为它在此分程序区域的
14、定义点分程序标号说明部分常量定义部分类型定义部分变量说明部分过程与函数说明部分语句部分标号说明部分标号标号常量定义部分常量定义常量定义类型定义部分类型定义类型定义变量说明部分变量说明变量说明过程与函数说明部分过程说明函数说明语句部分规定分程序激活时所要执行的算法动作语句部分复合语句作用域采用说明根据规定本标准将原国际标准中的记号改为原国际标准对此改动是允许的程序分程序包含的每个标识符或每个标号应有一个定义点每个定义点应有一个区域和一个作用域区域是程序正文的一部分作用域是区域的一部分或全部每个定义点的区域在别处定义参看每个定义点的作用域应是受第和项制约的相应区域包括此区域所围的所有区域当一个标识
15、符或标号在区域有定义点且与它拼写相同的另一个标识符或标号在区域所围的某个区域有定义点则区域的定义点作用域应除去区域和所围的所有区域包围作用域应除去域命名符所指的域区分符的那个区域若一个标识符或标号在某个区域有定义点则另一个与它拼写相同的标识符或标号在此区域不应有定义点在一个标识符或标号的定义点作用域内与此定义点标识符或定义点标号拼写相同的标识符或标号其每次出现都称为此定义点标识符或定义点标号的一次应用性出现但要除去构成该标识符定义点或标号定义点的出现这种出现称为定义性出现在作用域外面的出现都不是它的应用性出现注在标识符或标号的定义点作用域内不存在这样的标识符或标号的应用性出现它不能与定义点的标
16、识符或标号相区分而且在包围此作用域的区域里有定义点在程序分程序中标识符或标号的定义点应在它的所有应用性出现之前但有一个例外即在类型定义部分所包含的任何新指针类型里其定义域类型的类型标识符可以是一个应用性出现此类型标识符在该类型定义部分里有定义点表记需求常量需求类型需求过程与需求函数的标识符使用时就好像它们的定义点有一个包围该程序的区域参看和注需求标识符和不包括在内这是因为它们表记变量的缘故一个标识符或标号在定义点处表记什么在所有的应用性出现处就表记什么注在语法定义里标识符的应用性出现是受限定的例如类型标识符而构成定义点时使用的标识符是不受限定的激活过程标识符或函数标识符在某一分程序区域的过程与
17、函数说明部分内有一个定义点则称它们局部于该分程序分程序的激活应包括对此分程序的语句部分而言就是激活一个算法算法完成后该激活就终结也可参看对语句中在此分程序标号说明部分里有定义点的每个标号而言就是激活该语句的算法中的一个程序点对在此分程序区域里有定义点的每个变量标识符而言就是具有与此变量标识符相关联的类型的变量对局部于此分程序的每个过程标识符而言就是对应于该过程标识符的过程分程序及其形式参数的过程对局部于此分程序的每个函数标识符而言就是对应于该函数标识符的函数分程序与其相关联的结果类型及其形式参数的函数相关若此分程序是一个函数分程序其结果就具有相关联的结果类型注每次激活都有它自己的算法程序点集合
18、变量集合过程集合和函数集合每次激活都与其他各次激活不同一个过程或函数的激活应分别是其过程分程序或函数分程序的分程序的激活该激活称作为内部于包含该过程或函数的激活和上述激活在其内部的所有激活注分程序的一次激活只能在包含的分程序的激活的内部因此一次激活不能在同一分程序的同一次激活的内部在一次激活内局部于此激活分程序的标号或变量标识符或过程标识符或函数标识符的应用性出现应分别表现该激活对应的程序点变量过程或函数除此之外在函数标识符所表记的函数激活内部赋值语句中的函数标识符应表记此激活的结果在一个激活的算法中所包含的且指定分程序激活的过程语句或函数命名符称作为此分程序激活的激活点除作为程序参数列举的那
19、些变量外一次激活包含的所有变量和激活的任何结果在激活开始时应是完全未定义的算法程序点变量过程和函数若有的话将一直存在到激活终结为止常量定义常量定义引入一个表记值的标识符常量定义标识符常量常量正负号无正负号数常量标识符字符串常量标识符标识符在分程序常量定义部分的常量定义中一个标识符的出现构成它在此分程序区域的定义点常量定义中的常量不应包含此常量定义中该标识符的应用性出现该标识符的每次应用性出现都应是一个常量标识符且表记由此常量定义中常量所表记的值在有正负号出现的常量中常量标识符应被定义为表记一个实数类型或整数类型的值需求常量标识符在和中规定类型定义概述一个类型定义引入一个表记类型的标识符类型是每
20、个值和变量所具有的一种属性每个新类型的出现应表记一个与任何其他新类型不同的类型类型定义标识符类型表记符类型表记符类型标识符新类型新类型新顺序类型新构造类型新指针类型在分程序类型定义部分的类型定义中一个标识符的出现构成它在此分程序区域的定义点该标识符的每次应用性出现应是一个类型标识符所表记的类型与此类型定义中类型表记符表记的类型相同除了新指针类型的定义域类型里的应用性出现的情形外在类型定义里类型表记符不应包含该标识符的应用性出现类型分为简单类型构造类型和指针类型需求类型标识符和相应的需求类型在和中规定简单类型标识符类型标识符构造类型标识符类型标识符指针类型标识符类型标识符类型标识符标识符一个类型
21、标识符根据它所表记的类型被看作是简单类型标识符构造类型标识符或指针类型标识符简单类型概述简单类型应确定值的有序集合每个顺序类型的值都有一个整数序号顺序类型标识符表记一个顺序类型简单类型顺序类型实数类型标识符顺序类型新顺序类型顺序类型标识符新顺序类型枚举类型子域类型顺序类型标识符类型标识符实数类型标识符类型标识符需求简单类型存在下列类型整数类型需求顺序类型标识符应表记整数类型其值应是按规定的有正负号整数表记的全体数的一个子集也可参看整数类型值的序号就是该值本身实数类型需求实数类型标识符应表记实数类型其值应是符合规定的由有正负号实数表记的实数的一个由实现所定义的子集布尔类型需求顺序类型标识符应表记
22、布尔类型其值应是由需求常量标识符和表记的真假值的枚举是的前启由和表记的真假值的序号分别为整数值和字符类型需求顺序类型标记符应表记字符类型其值应是由实现所定义的字符集的枚举有些可能没有图型表示字符值的序号是由实现所定义的整型值且其值通过把字符值映射到从零开始的相继非负整数值来确定映射应保持次序不变下列关系应成立表示数字到的字符值子集数值上应是有序邻接的表示大写字母到若可用的话的字符值子集应按字母顺序排列但不一定是邻接的表示小写字母到若可用的话的字符值子集应按字母顺序排列但不一定是邻接的任何两个字符之间的顺序关系应与它们的序号之间的顺序关系相同注可用于需求简单类型的运算符在中规定枚举类型枚举类型应
23、通过标识符的枚举来确定值的有序集合其值用标识符表记这些值的顺序应由标识符枚举的次序确定即若在的前面则小于枚举类型值的序号应通过把该类型的所有值映射到从零开始的相继非负整型值来确定映射保持次序不变枚举类型标识符表标识符表标识符标识符出现在枚举类型的标识符表中的标识符应构成它作为常量标识符在最紧包含此枚举类型的分程序区域的定义点例子子域类型一个子域类型应包括标识该子域的最小值和最大值子域类型的第一个常量指明其最小值它应小于或等于由另一个常量指明的最大值两个常量应具有同一种顺序类型且顺序类型被指定为子域类型的宿主类型子域类型常量常量例子构造类型概述新构造类型根据它最紧包含的非紧缩构造类型应分为数组类
24、型记录类型集合类型和文卷类型构造类型值的成分应是一个值构造类型新构造类型构造类型标识符新构造类型非紧缩构造类型非紧缩构造类型数组类型记录类型集合类型文卷类型在新构造类型中记号的出现应指示该类型用紧缩方式表示指示为紧缩的构造类型应通知处理程序其值的数据存储应当节省即使这样做会引起对该类型变量的运算或其分量的存取在时间或空间上低效指示为紧缩的构造类型应只影响它的数据存储表示即若一个成分本身是构造的则仅当该成分的类型指示为紧缩时此成分的数据存储表示才是紧缩的注类型是否指示为紧缩的将影响该类型实体的处理方式它们在和中规定数组类型数组类型的构造应看作由其下标类型规定的每个值到不同分量的一个映射数组类型的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB 7591 1987 程序设计语言 Pascal
