编译原理语义分析实验报告免费.docxVIP

  1. 1、本文档共17页,可阅读全部内容。
  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文档。上传文档
查看更多
编译原理综合训练 语义分析实验报告 指导老师: 班级: 学生:zeadom 学号: 学生: 学号: 2011/6/29 目录 语言文法的形式化描述 错误!未定义书签。 语义规则 错误!未定义书签。 运行环境介绍 错误!未定义书签。 关键算法的流程图及文字解释 错误!未定义书签。 K本编译器的总框架 错谋!未定义书签。 2、 在语义分析中的主要函数介绍 错误!未定义书签。 3、 产生布尔农达式 错误!未定义书签。 4、While-do语句的语义分析 4、While-do语句的语义分析 错误!未定义书签。 5、词法、语法和语义分析的衔接 错误!未定义书签。 测试报告错课!未定义书签。 测试报告 附录 错误!未定义书签。 语言文法的形式化描述(BNF范式) 程序开始 P-program i;SDn SC; 定义语句 SDn-SDSDn|null SD-var int iSDT SDT ?null|,iSDT 复合语句 SC-begin Sn end Sn-S;Sn| | null 单个语句 S-SD|SA|SIF|SW|SC 赋值语句SA-i:=E 算术衣达式 E-cET|iET|(E)ET ET-AE|CE|DE|null; C-+|-|*l/; 布尔表达式 B-EAEBT|NOTB|(B)BT BT-DB|null A-?|| = |=|=| D-AND|OR 语句 ifSIF-if B then S SELSE SELSE-null|else S2 语句 whileSW-while B do S 语义规则(属性文法)? 产生式语义规则 i:=E {Gen(:=, # — , entry(i))} { = Ne^vtemp; EE1+E2 Gen(+, f . )} { = Ne^vtemp; EE1*E2 )} / Gen(*/Z El -E { = Newtemp; Gen(@ … 一 z )} E(E1) { = } Ei { = Entry(i)} 产生式 则语义规 {:=makelist(nextquad); :=makelist(nextquad+l); Ei Gen( jnz entry(i), — , 0 ); Gen( j ? — , — , 0) } {:=makelist(nextquad); Eil R i2 } 0 ) , — ,, 0 ); :=makelist(nextquad+l); Gen( j — Gen( jR, entry(il), entry(i2) ; { := E ~i El} ;{:=E(E1)} ? — ? .一 / M } £ { := nextquad ; {backpatch,); ME2 EE1A :=merge,E2. Falselist)} {backpatch(El. falselist,); :=merge(El. truelist, E2. truelist); ME2 EE1V := E2. Falselist } {backpatch,); ? — ? .一 f ME2 EElA:=mergez } 产生式语义规则 {backpatch, SI ); Sif E then M :=merge, } { := nextquad ; } M c N £ {:=makelist(nextquad); } — 〃,0) — Gen(j, S讦 E then Ml SI); { backpatch, else M2 S2 );backpatch, N :二merge, ,} Swhile MIE { backpatch, ); Ge n( j,—.—,); backpatch, ); := do M2 SI } {:= } S begin L end SA{:= makelist()严空链拿/} {:=L S } {backpatch, ); S LL1: M 运行环境介绍 运行环境是DEVC++ Dev-C++是-个CC++开发工具,它是?款自由软件,遵守GPL协议。它集合了 GCC、MinGW32 等众多自由软件,并且可以取得必威体育精装版版本的各种工具支持,而这?切工作都是来自全球的宛热者 所做的工作,并且你拥有对这?切工具自由使用的权利,包括取得源代码等,前提是你也必须遵 守GNU协议。Dev-C++每-天都在进步着,因为它是?个自由软件。Dev-C++是?个非常实用的 编程软件,多款着名软件均由它编写而成,它在C的基础上,增强了逻辑性 关键算法的流程图及文字解释 1>本编译器的总框架 2、在语义分析中的主要函数介绍 Backpatch(int list)nt quad) 代码: void backpatch(int listjnt patch) { int t

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档