GB T 12856-1991 程序设计语言BASIC子集.pdf
《GB T 12856-1991 程序设计语言BASIC子集.pdf》由会员分享,可在线阅读,更多相关《GB T 12856-1991 程序设计语言BASIC子集.pdf(120页珍藏版)》请在麦多课文档分享上搜索。
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 12856 1991 程序设计语言 BASIC 子集
