Chapter 8 Intermediate code generation Section 0 Overvie.ppt

Chapter 8 Intermediate code generation Section 0 Overvie.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 8 Intermediate code generation Section 0 Overvie

quadruple FC TC SYM INPUT 3.(jnz,B,-,0) -2 4 --3 # EAE or not C# success -5 -6 #E # 6.(j,-,-,3) --5 -3 6 # E0 E # 5.(jnz,C,-,0) ---6 -3-5 # E0 notE # ---- -3-- # E0 not i # --- -3- # E0 not C# -- -3 # E0 not C# -4- -3- #E or or not C# 4.(j,-,-(5)) -4 -3 #E or not C# Chapter 8 Intermediate code generation Section 3 Quadruples 6.Backpatching 3) Flow of control statements (1) modify the grammar S ?if E then S(1) else S(2) ? C ?if E then T ?C S(1) else S ?T S(2) S ?if E then S(1) ? C ?if E then S ?C S(1) Chapter 8 Intermediate code generation Section 3 Quadruples 6.Backpatching 3) Flow of control statements (2) Semantic Rules C ?if E then {BACKPATCH(E?TC,NXQ); C?CHAIN=E?FC;} T ?C S(1) else {q=NXQ; GEN(j,-,-0); BACKPATCH(C?CHAIN,NXQ); T ?CHAIN=MERG(S(1)?CHAIN,q)} S ?T S(2) {S?CHAIN=MERG(T?CHAIN,S(2)?CHAIN)} S ?C S(1) {S?CHAIN=MERG(C?CHAIN,S(1)?CHAIN)} e.g. If a then if b then A:=2 else A:=3 Else if c then A=4 Else a=5 (1) (jnz,a,_,0) (2) (j,_,_,0) If a then if b then A:=2 else A:=3 Else if c then A=4 Else a=5 (1)(jnz,a,_,(3)) (2)(j,_,_,0) (3)(jnz,b,_,0) (4)(j,_,_,0) Ca?CHAIN-2 If a then if b then A:=2 else A:=3 Else if c then A=4 Else a=5 (1)(jnz,a,_,(3)) (2)(j,_,_,0) (3)(jnz,b,_,(5)) (4)(j,_,_,0) Ca?CHAIN-2 Cb?CHAIN-4 (5)(:=,2,_,A) If a then if b then A:=2 else A:=3 Else if c then A=4 Else a=5 (1)(jnz,a,_,(3)) (2)(j,_,_,0) (3)(jnz,b,_,(5)) (4)(j,_,_,(7)) (5)(:=,2,_,A) Ca?CHAIN-2 Cb?CHAIN-6 (6)(j,_,_,0) Answer (1)(jnz,a,_,(3)) (8)(j,_,_,6) (2)(j,_,_,(9)) (9)(jnz,c,_,(11)) (3)(jnz,b,_,(5)) (10)(j,_,_,(13)) (4)(j,_,_,(7)) (11)(:=,4,_,A) (5)(:=,2,_,A) (12)(j,_,_,8) (6)(j,_,_,0) (13)(:=,5,_,A) (7)(:=,3,_,A) S?CHAIN-6-8-12 a b S1(A:=2) S2(A:=3) c S3(A:=4) S4(A:=5) TRUE

文档评论(0)

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

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

1亿VIP精品文档

相关文档