程序设计语言常用语法与翻译.pptVIP

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在语句 中,表达式E的作用是提供选择执行语句S1还是S2的判断。因此不必保留E的值,而是将计算结果表示为程序执行流程的转移。此时E的值只需有两个即可。所以E被视为布尔表达式。E的真值被转换为一个条件转移,称为“真出口”。E的假值被转换为一个无条件转移,称为“假出口”。 信息学院软件工程教研室 第30页,共44页,编辑于2022年,星期五 最简单的情况E是一个布尔变量a,那么有: 真出口 假出口 信息学院软件工程教研室 第31页,共44页,编辑于2022年,星期五 信息学院软件工程教研室 程序设计语言常用语法与翻译 第1页,共44页,编辑于2022年,星期五 第四章 程序设计语言常用的 语法与翻译方法 信息学院软件工程教研室 第2页,共44页,编辑于2022年,星期五 4.1 逆波兰表示法 逆波兰表示表达式 高级语言表示表达式 ab* a*b ab*c+ a*b+c abcd/+* a*(b+c/d) ab*cd*+ a*b+c*d 信息学院软件工程教研室 第3页,共44页,编辑于2022年,星期五 高级语言表达式E的逆波兰表示法可这样定义: (1)若E是高级语言中的一个变量或常数,则E的逆波兰表示式仍是E。 (2)若高级语言中的表达式为E1 op E2,其中,op是一个二元算符,E1、E2也是表达式,则逆波兰式表示为E1 'E2' op,其中,E1'是E1的逆波兰式,E2'是E2的逆波兰式。 (3)若高级语言中的表达式为(E),则逆波兰表示式为去掉括号的E',E'为E的逆波兰表示式。 信息学院软件工程教研室 第4页,共44页,编辑于2022年,星期五 三地址代码是由下面一般形式的语句构成的序列。 x:=y op z 其中x、y、z是变量名或编译时产生的临时变量名;y、z还可以是常数;op代表某种操作符。这种中间语言的特点有两个。 (1)非常接近汇编语言形式,包括汇编语言中最基本的操作。 (2)每个语句中赋值号的右边只有一个操作符,使得句子意义最小且不可分。例如,源语言表达式x+y*z可被翻译成如下的句子序列: T1:=y*z T2:=x+T1 4.2 三地址代码 信息学院软件工程教研室 第5页,共44页,编辑于2022年,星期五 三地址代码的语句形式可分为两类: 一类是带有各种运算操作的赋值语句 第二类是转移语句 三地址码语句可看成是一种中间代码的抽象形成,在编译程序中,三地址代码的具体实现常以记录的形式表示,通常有3种表示方法:四元式、三元式、间接三元式 信息学院软件工程教研室 第6页,共44页,编辑于2022年,星期五 4.3 程序设计语言常用语法 4.3.1 表达式语法(算术) 4.3.2 赋值语句 4.3.3 if语句 4.3.4 循环语句 4.3.5 说明语句 4.3.6 函数的定义与调用 4.3.7 程序语句序列文法 信息学院软件工程教研室 第7页,共44页,编辑于2022年,星期五 4.3.1 表达式语法(算术) 根据算术表达式的定义,一般算术表达式记为E,其文法被定义为: E→E op E (op 为双目操作符) E→op E (op 为单目操作符) E→D|id (D为数字,id为标识符号) 这是一个无法直接使用的二义性文法,必须使用前述两种消除二义性文法的策略将文法中的二义性表达加以限制或改写。 信息学院软件工程教研室 第8页,共44页,编辑于2022年,星期五 对这种表达式保留文法的二义性也有好处。不过在作语法分析时要规定算符间的优先关系和结合顺序,这样才能确定语句的最终意义。这就是常用于表达式语法分析的算符优先分析法。 信息学院软件工程教研室 第9页,共44页,编辑于2022年,星期五 无二义的表达式文法一般定义为: 无论采用哪一种文法形式,只要最终语句的意义是确定、不含糊的,并且是统一的,那么同一个语句所对应的抽象语法树就是相同的。 信息学院软件工程教研室 第10页,共44页,编辑于2022年,星期五 4.3.2 赋值语句 赋值语句的文法最简单,定义为: 其中,是一个名字,它表示各种类型的变量,包括下标变量(数组)。“=”是赋值号,E是表达式,赋值语句的语义是把赋值号右边表达式的值放到赋值号左边名字所指的地址中去。 信息学

文档评论(0)

努力奋斗的小玲 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档