ImageVerifierCode 换一换
格式:PDF , 页数:120 ,大小:6.94MB ,
资源ID:266110      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-266110.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(GB T 12856-1991 程序设计语言BASIC子集.pdf)为本站会员(花仙子)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

GB T 12856-1991 程序设计语言BASIC子集.pdf

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