資源描述:
《編譯原理(第三版何炎祥)第8章習(xí)題解答》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第8章習(xí)題解答8.1SDTS=({+,–,/,(,),a},{E,T,A},{+,–,/,*,x},R,E)其中R由下列翻譯規(guī)則組成:①E?E+T,ET+②E?E–T,ET–③E?E*T,ET*④E?E/T,ET/⑤E?T,T⑥E?(T),T⑦T?A,A⑧A?a,x⑨T?E,E8.2提示:一個(gè)無(wú)二義性的文法的輸入串是非歧義的,只對(duì)應(yīng)一棵語(yǔ)法樹,掃描完整翻譯樹的末結(jié)點(diǎn)就得到翻譯串,所以只有一個(gè)翻譯串。8.3略8.4E?MorT,MTorM?E,EinforE?T,TT?NandF,NFandN?T,TinfandT?F,FF?(E),EF?a,a8.5在逆波蘭表示法中,運(yùn)算符直接跟在其運(yùn)算量的
2、后面;四元式的一般形式是〈運(yùn)算符〉〈運(yùn)算量1〉〈運(yùn)算量2〉〈結(jié)果〉;三元式與四元式基本相同,所不同的只是沒有表示運(yùn)算結(jié)果的部分,凡涉及運(yùn)算結(jié)果的,均用相應(yīng)三元式的地址或序號(hào)來(lái)代替。三元式的一般形式為<運(yùn)算符><運(yùn)算量1><運(yùn)算量2>。a*b+(c–d)/e的逆波蘭表示為ab*cd–e/+四元式形式為*abT1–cdT2/T2eT3+T1T3T4三元式形式為①*ab②–cd③/②e④+①③–a+b*(–c+d)的逆波蘭表示為abcd+*+四元式形式為aT1cT2+T2dT3*bT3T4+T1T4T5三元式形式為①–a②–b③+②d④*b③⑤+①④(a>b)ù(bbc<
3、ù四元式形式為>abT1ab②4、hain=$2.TC;}8.7參考書中8.7.5章節(jié)8.8case語(yǔ)句有種種不同的實(shí)現(xiàn)方法,在這里我們介紹兩種以供參考。①對(duì)E求值的代碼,結(jié)果存入T中L1:ifT≠C1gotoL2S1的代碼gotonextL2:ifT≠C2gotoL3S2的代碼gotonextL3:…Ln-1:ifT≠Cn-1gotoLnSn-1的代碼gotonextLn:Sn的代碼Next:②關(guān)于把E計(jì)值在臨時(shí)單元T中的中間碼gototestL1:關(guān)于S1的中間碼gotonextL2:關(guān)于S2的中間碼gotonext…Ln-1:關(guān)于Sn-1的中間碼gotonextLn:關(guān)于Sn的中間碼gotonexttest:ifT=C
5、1gotoL1ifT=C2gotoL2…ifT=Cn-1gotoLn-1gotoLnnext: