2021年语义分析实验报告.docVIP

  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文档。上传文档
查看更多
2021年语义分析实验报告 2021年语义分析实验报告 PAGE / NUMPAGES 2021年语义分析实验报告 云南大学编译原理试验汇报 试验题目: 语义分析 学 院: 信息学院 专 业: 计算机科学与技术 学 号: 1060064 姓 名: 刘继远 目录 TOC \o 1-3 \h \z \u 一、 试验目 1 二、 试验内容 1 三、 源程序分析 2 1、 程序采取BNF 2 2、 依据语义要求得到对应翻译模式 3 3、 实现原理 4 4、 文法属性分析 5 5、 过程设计 5 6、 子程序说明 6 四、 设计基础思想(包含修改以后属性文法、 属性类型分析、 翻译模式) 7 1、 增加除法运算 7 2、 严禁同名反复申明 8 五、 结果及分析 8 一、 试验目 深入了解递归下降分析原理和实现方法, 了解语义分析基础机制, 掌握语义子程序结构方法。 二、 试验内容 将带变量申明表示式翻译为四元式序列, 其中包含以下要求: 非终止符号D实现定义两种类型int, real变量申明; 非终止符号S实现变量之间*, +, : =(赋值运算) 两个关键字 int 和real 变量之间*, +, : =(赋值) 运算只能使用申明过变量, 所以要检验使用变量是否申明过。 对每个*, +, : =(赋值) 运算生成一条四元式如(*, A, B, T1), 其中T1是临时变量 *优先等级高于+, *满足左结合规则 三、 源程序分析 这是一个简单包含词法、 语法、 语义分析程序: 语义分析.h和语义分析.cpp。 实现基础原理是自顶向下分析, 单遍扫描, 以语法分析为关键, 调用词法分析, 并实现语义分析。 1、 程序采取BNF P→ DS. D→B; D D→ε B→int L | real L L→id | L, id S→ V := E H H→; S | ε E→E+T | T T→T*F|F F→( E ) F→id V→id 消除左递归以后等价文法 start→ DS. D→B; D D→ε B→int L | real L L→id A A→ , idA A→ε S→ V := E H H→; S | ε E→T R R→+T R R→ ε T→F P P→* F P P→ε F→( E ) F→id V→id 2、 依据语义要求得到对应翻译模式 start→ DS. D→ B; D D→ε B→ int L { L.type := int } | real L { L.type := real } L→ id { A.Type := L.type enter(v.entry, L.type)}A A→ , idA { A1.Type := A.type enter(v.entry,A.type)} A→ε S→ V := E { gen( :=, E.place,0,V.place) } H H→; S | ε E→T { R.i:=T.place} R {E.place:=R.s} R→+T { R1.i:= newtemp; gen( +, R.i, T.place , R1.i) } R {R.s:= R1.s; } R→ ε {Rs=R.i} T→F { P.i:=F.place} P { T.place:=P.s} P→* F { p1.i:= newtemp; gen( *, P.i, F.place , T) } P {P.s:= p1.s; } P→ε {P.s=P.i} F→( E ) { F.place := E.place} F→id {F.place:=position (id)} V→id {V.place:=position(id)} 3、 实现原理 基于翻译模式自上而下语义处理(翻译) 对每个非终止符 A, 结构一个函数, 以 A 每个继承属性为形参, 以A综合属性为返回值(若有多个综合属性, 可返回统计类型值) 。如同估计分析程序结构, 该函数代码步骤是依据目前输入符号来决定调用哪个产生式。 与每个产生式相关代码依据产生式右端终止符, 非终止符, 和语义规则集(语义动作), 依从左到右次序完成下列工作: 对终止符 X, 保留其综合属性x值至专为

文档评论(0)

181****8523 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档