网站大量收购闲置独家精品文档,联系QQ:2885784924

6-第六章语义分析-4-5-6节.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§6.4 布尔术表达式到四元式的翻译 附:布尔术表达式到四元式的翻译 ——— 方法2介绍 §6.6 标号和转移语句到四元式的翻译 If A ∧ B then x:=10*y else x:=20+y E1① M1② E3④ N⑦ M2⑤ E2③ S1⑥ M3⑧ S2⑨ S3(10) 图中:加下划线的是句柄;句柄下的非终结符为归约后的符号。 E2.truelist=102 E2.falselist=103 M1.quad=102 E1.truelist=100 E1.falselist=101 属性 定义链头, 产生四元式 记四元式号 定义链头, 产生四元式 语义动作 102 ( jnz, B, —,0 ) 103 ( j , —, —, 0 ) E2?i M1?ε 100 ( jnz ,A, —, 0) 101 ( j, —,—, 0 ) E1?i 四元式 产生式 If A ∧ B then x:=10*y else x:=20+y E1① M1② E3④ N⑦ M2⑤ E2③ S1⑥ M3⑧ S2⑨ S3(10) 100 ( jnz,A,—,102) 101 ( j, —, —, 0 ) 102 ( jnz, B, —,0 ) 103 ( j , —, —,101) E3.truelist=102 E3.falselist=103 backpatch(E1.truelist, M1.quad) merge(E1.falselist, E2. falselist) E3? E1∧M1E2 M2.quad=104 记四元式号 M2? ε 104 (*, 10, y, T1) 105 (:= , T1 , —, X) S1.nextlist=0 产生赋值语句的四元式,定义链头 S1?A 属性 语义动作 四元式 产生式 107 ( +, 20, y , T2) 108 (:= , T2 , —, X) S2.nextlist=0 产生赋值语句的四元式, 定义链头 S2?A M3.quad=107 记四元式号 M3?ε 106 ( j , —, —, 0) N.nextlist=106 定义链头, 产生四元式 N? ε 属性 语义动作 四元式 产生式 If A ∧ B then x:=10*y else x:=20+y E1① M1② E3④ N⑦ M2⑤ E2③ S1⑥ M3⑧ S2⑨ S3(10) 100 ( jnz ,A, —, 102) 101 ( j, —,—, 107 ) 102 ( jnz, B, —,104 ) 103 ( j , —, —, 107) 104 ( * ,10, y, T1) 105 (:= , T1 , —, X) 106 ( j , —, —, 0) 107 ( + ,20, y, T2) 108 (:= , T2 , —, X) E3.truelist=102 E3.falselist=103 M2.quad=104 M3.quad=107 N.nextlist=106 S3.nextlist=106 backpatch(E3.truelist, M2.quad) backpatch(E3.falselist, M3.quad) S3.nextlist:=merge( S1.nextlist, N.nextlist, S2.nextlist ) S? if E3 then M2 S1 N else M3 S2 语句待返填的出口链 S3.nextlist =106 If A ∧ B then x:=10*y else x:=20+y E1① M1② E3④ N⑦ M2⑤ E2③ S1⑥ M3⑧ S2⑨ S3(10) * 用于逻辑赋值语句中布尔表达式演算; A:=B∨C∧D=E 用作控制语句中的条件表达式 if A∧B∨C then S1 else S2 或 while i10 do S 1.布尔表达式的作用 E ? E∧

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档