编译原理课程设计++++dowhile+循环语句的实现武汉理工.docxVIP

编译原理课程设计++++dowhile+循环语句的实现武汉理工.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理课程设计++++dowhile+循环语句的实现武汉理工.docx

武汉理工大学《编译原理》课程设计书 PAGE12 / NUMPAGES12 DO-WHILE循环语句的翻译程序设计 -——(LR方法、输出四元式) 1、系统描述 通过设计、编制、调试一个DO-WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。用语法制导完成语义分析,并将形成的中间代码以四元式的形式输出。 2 、文法及属性文法的描述 2.1 文法的描述 该文法的产生式集合如下所示: Z-do{E}while(T) E-AE E-A A-b op A A-b; T-b op1 b 其中do、while、( 、) 、{ 、} 、op、op1 、 ; 和b均为终结符,而Z、A、T、E这些大写字母均为非终结符。op1表示比较运算符,op表示算术运算符,b表示合法标识符。 2.2 属性文法的描述 对该文法的属性文法描述如下: Z-do{E}while(T) prinf(if T goto E else goto next) E-AE print(E.val = A.val·E.val) E-A print(E.val = A.val) A-b op A print(A= b.Val op A.Val) A-b; A.Val = b; T-b op1 b print(T= b1.Val op1 b2.Val) 3 、语法分析方法描述及语法分析表设计 3.1语法分析表设计 LR分析表如下: ACTION GOTO状态do{} while()iopop1;#Z ETA0S211A02S33S6454S75R3S6R356S9S107S118R2S29S61210R5R5R511S1312R4R4R41413S151414S1615S1716R117S1818R6 3.2 LR分析方法描述说明 LR分析法的规约过程是规范推到的逆过程,所以LR分析过程是一种规范规约的过程。其分析过程为:由文法构造出该文法项目集,再根据项目集构造该文法的DFA,再判断是否有移进-规约和规约-规约冲突,若没有冲突则该文法为LR(0)的,若有冲突则该文法是SLR(1)的,最后可以构造出LR(0)分析表。然后根据LR(0)分析表进行语法分析,分析过程就是进栈和规约的过程。若能规约出开始符S,则语法正确。反之,语法错误。 4 、中间代码形式的描述及中间代码序列的结构设计 本系统中所采用的中间代码形式是四元式,是一种比较普遍采用的形式。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及运算结果RESULT。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。例如a:=b*c+b*d的四元式表示如下: 1)(*,b,c,t1) 2)(*,b,d,t2) 3)(+,t1,t2,t3) 4)(:=,t3,-,a) 四元式对中间结果的引用必须通过给定的名字,也就是说,四元式的联系是通过临时变量实现的。 5、编译系统的概要设计 词法分析 词法分析程序要做的工作是:从源程序的第一个字符开始,顺序读字符,一次读一个, 根据所读进的字符识别各类单词,同时去掉源程序中的空白和注释。词法分析检查的错误 主要是挑出源程序中出现的非法符号。所谓非法符号是指不是程序设计语言中允许出现的 符号,就像自然语句中的错字。 流程图如下: 结束符“#” 界限符 开始 到输入流中读下一字符?Char Char是什么? 初始化 标识符和关键字 词法分析子程序 字母 数字 运算符 无符号数 词法分析子程序

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档