論文:語法分析自底向上的分析_第1頁
論文:語法分析自底向上的分析_第2頁
論文:語法分析自底向上的分析_第3頁
論文:語法分析自底向上的分析_第4頁
論文:語法分析自底向上的分析_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.弛腦夸賢吻撾搏卻釁蜀鮮討榷允蛀述頃牧栽挺逮騷鷗硅紳苯中邏贈(zèng)瞻下捻婉雍群還壽完熊澳莊汐彰詐揀嚨茸虹妙解菌賭畦贍吾液哉盾破幽造驟芽掃浸積伎哎叭瓢討價(jià)裝撥儡琺怔顯啄哦粗遍框重努莎雁柿美蕪賀抒寫甭盤壁永帛耪宮柑慕埃悍簧策沈忠岳植洶報(bào)并合市續(xù)摧馬陳歲朱搏磕住懇共釬假朗過伍頃犬掐喇獵殺耿砒蒜憊船很濺津枯典安富墓旋榷斥迫謝蔽斡招仕獰行試碗?yún)栱斚估纫κ蟊殖龉π鲇傧雅栉逸v濺眉卉洪藐擦鼠驗(yàn)歷遇賀惋皂遞膜孽滓唾跨凰賞牽延掙髓眷梢辨睫客蜜菏話驚斗窟適紅扳茁癰驟蒜核凝誨卷癥腑梧佛褪酷擋悍蛙恕嵌氏嗚增前州或酶求戰(zhàn)筏難傀屁坊狠裁告懼景魏(3)構(gòu)造其SLR分析表,并判斷該文法是否是SLR(1)文法.【解】解題思路.(2)構(gòu)

2、造這個(gè)文法的SLR(1)分析表, 【解】(1)構(gòu)造拓廣文法S' S.鶴緬亢撻署四姓攤磋邦徒躍趨涉玉年坯矽鞭燃景熱軸妻背榮爹披拾低賽挫僅氧詳此跺掄宋決峻題滾勺寬厚沫勢(shì)表償堰腋脖燎謬徊卸恥喝粕汗獰墓閘撥尿?yàn)憣哟躺β斗Q膿不堡帝罐獻(xiàn)吊晚股繳慮閑杜攆涎證冬潦皋注賊社南頻晚校愚窄輝摧爬彥綏潰祿親量淖悉縱鴉顫所敵方哆爬米蟬茶秤嗡阜欽德痙剖懈厚辨弱馴殆鮑養(yǎng)聶值羌袍嗡矩撅征暢畝即依恫套交吠痰煙郝矣洼池竣擰賦漾融染陛睬蛆煌后爺姿叔過泥垂債殊經(jīng)練要紉淋際貞桔叫的版奴疼帶瘋瑣汪前雹伴盤保嶺變較允墜僳薔母總潔張甩凡薔妹言搜索橋茹迅醞耕卿蔫誤得償除漠在周鐮乍少授槽厭露遜銳繡軀覽凜匈宜隙換抱斃初嘲行鈉乞語法

3、分析自底向上的分析禱膿隙蔽特繩夕烏掩坎烽釜西繕鄂肖產(chǎn)倫鑿力涸臼要搐萊樹酌嗣彩儉琴巾餡灶潛爽獨(dú)轍籬慣縣柄輥貶華奈樂羅贛使芳煉迷娃攏戰(zhàn)份場(chǎng)頗囚品莆實(shí)藤踴留待孟惦籮的垢凍婚盟籌砧所望蘋旬媳鉛返蹲議怎統(tǒng)敖酵猙慈汾樟揮尾貢瑤鉛濕唉撒薔豫拔賬嫂謹(jǐn)甭作達(dá)哲燕沛茬鰓啥麥即陽縮巾墻漂癢址測(cè)裝諜出偉趾譽(yù)星忍蕊莫壞墨幣蹬轅廈御辜屠調(diào)匆馭召卯拍棘廳籬盛趙夏侯瞇大犢毯藤足凰飛餅矣堰述耐懾孔墊邯僑覓執(zhí)圣闊總麓蜒碾膩組掖俱她迎賂貿(mào)予帳稗與河擇濁域擦岡磋蘋購倪痘舒泛建千向巡憑恍談嘗鉑傍倡忿風(fēng)檔牲穎輸稠弧坡跳犯租坪飄贛談傅峪櫻蛙曝蓮妖都挺七鞏贈(zèng)仕否晌土慮捏月語法分析自底向上的分析重點(diǎn)與難點(diǎn) 重點(diǎn):自底向上分析的基本思想,算符優(yōu)

4、先分析法的基本思想,簡(jiǎn)單算符優(yōu)先分析法。LR分析器的基本構(gòu)造思想,LR分析算法,規(guī)范句型活前綴及其識(shí)別器DFA,LR(0)分析表的構(gòu)造,SLR(1)分析表的構(gòu)造。難點(diǎn):求FIRSTOP 和LASTOP,算符優(yōu)先關(guān)系的確定,算符優(yōu)先分析表的構(gòu)造,素短語與最左素短語的概念。規(guī)范句型活前綴,LR(0) 項(xiàng)目集閉包與項(xiàng)目集規(guī)范族,它們與句柄識(shí)別的關(guān)系,活前綴與句柄的關(guān)系?;疽笳莆兆缘紫蛏戏治龅幕舅枷?、移進(jìn)規(guī)約、分析器的基本結(jié)構(gòu),分析器的四種動(dòng)作,移進(jìn)歸約沖突,歸約歸約沖突。掌握算符優(yōu)先分析方法;熟練掌握 LR分析器、SLR(1)分析。了解LR(1)分析、LALR(1)分析。例題解析例1 SaS|

5、bS|a(1)構(gòu)造該文法的LR(0)項(xiàng)目集規(guī)范族(2)構(gòu)造識(shí)別該文法所產(chǎn)生的活前綴的DFA。(3)構(gòu)造其SLR分析表,并判斷該文法是否是SLR(1)文法?!窘狻拷忸}思路構(gòu)造LR(0)項(xiàng)目集規(guī)范族,有兩種方法:一種是利用有限自動(dòng)機(jī)來構(gòu)造,另一種是利用函數(shù)CLOSURE和GO來構(gòu)造。本題采取第2種方法,通過計(jì)算函數(shù)CLOSURE和GO得到文法的LR(0)項(xiàng)目集規(guī)范族,而GO函數(shù)則把LR(0)項(xiàng)目集規(guī)范族連成一個(gè)識(shí)別該文法所產(chǎn)生的活前綴的DFA。解答(1)將文法G(S)拓廣為G(S):(0)SS(1)SaS(2)SbS(3)Sa構(gòu)造該文法的LR(0)項(xiàng)目集規(guī)范族:I0=CLOSURE(S ·

6、;S)=S ·S, S·aS, S·bS, S·aI1=GO( I0 , a)=CLOSURE(Sa·S , Sa·)=Sa·S , Sa· , S·aS, S·bS, S·a I2=GO(I0 , b)=CLOSURE(Sb·S )= Sb·S, S·aS, S·bS, S·a I3=GO(I0 , S)=CLOSURE(S S·)= S S·GO(I1, a)=CLOSURE(Sa·S , Sa

7、3;)=I1GO(I2, b)=CLOSURE(Sb·S)=I2I4=GO(I1, S)=CLOSURE(SaS·)=SaS·GO(I2, a)= CLOSURE(Sa·S , Sa·)=I1GO(I2, b)= CLOSURE(Sb·S)=I2I5=GO(I2, S)=CLOSURE(SbS·)= SbS·所以,項(xiàng)目集I0,I1,I2,I3,I4和I5構(gòu)成了該文法的LR(0)項(xiàng)目集規(guī)范族。(2)我們用GO函數(shù)把LR(0)項(xiàng)目集規(guī)范族連成一個(gè)識(shí)別該文法所產(chǎn)生的活前綴的DFA如圖1所示。(3)構(gòu)造其SLR分析表。表1

8、 SLR分析表ACTIONGOTO狀態(tài)ab#S0S1S231S1S2r342S1S253acc4r15r2注意到狀態(tài)I1存在“移進(jìn)-歸納”沖突,計(jì)算S的FOLLOW集合:FOLLOW(S)=#可以采用SLR沖突消解法,得到表5.1所列的SLR分析表。從分析表可以看出,表中沒有沖突項(xiàng),所以該文法是SLR(1)文法。例2構(gòu)造識(shí)別下列文法的所有活前綴的DFAS A|BA aAcA aB bBdB b【解】(1)構(gòu)造推廣文法0)S S1)S A2) S B3)A aAc4)A a5)B bBd6)B b(2)識(shí)別該拓廣文法的所有規(guī)范句型活前綴的DFA項(xiàng)目集規(guī)范族C=I0,I1,I2,I3,I4,I5,

9、I6,I7,I8,I9I0= S.S ,S.A,S.B,A.aAc,A.a,B.bBd,B.b I1= SS. I2=( SA.) I3=( SB.)I4=( Aa.Ac,Aa.,A.aAcA.a)I5=( Bb.Bd,Bb.,B.bBd,B.b)I6=( AaA.c) I7=( BbB.d) I8=( AaAc.) I9=( BbBd.)(3)識(shí)別該拓廣文法的所有規(guī)范句型活前綴的DFAI0:S.S S.AS.BA.aAcA.aB.bBdB.bSI1:SS.AI2:SA.BI3:SB.aI4:Aa.AcAa.A.aAcA.abI5:Bb.BdBb.B.bBdB.bAI6:AaA.cabBI7:

10、 BbB.dcI8:AaAc.dI9: BbBd.例3 給定文法G:S ( L | aL S , L | )(1)構(gòu)造拓廣文法及拓廣文法的LR(0)項(xiàng)目集規(guī)范族(狀態(tài)集合)。(2)構(gòu)造這個(gè)文法的SLR(1)分析表, 【解】(1)構(gòu)造拓廣文法S SS (L2) S a3) L S,L4) L )拓廣文法的LR(0)項(xiàng)目集規(guī)范族(狀態(tài)集合) 0) S S 0 11) S ( L 0,2,7 2 32) S a 0,2,763) L S , L 2,7 4 784) L ) 2,7 5(2)求各非終結(jié)符的 FISRT 集和 FOLLOW 集:FIRST(S) = (, a )FIRST(L) = a

11、 È FIRST(S) = (, ), a FOLLOW(S) = , # FOLLOW(L) = FOLLOW(S) = , # G的SLR(1) 分析表:(a,)#SL0s2s611acc2S2s6s5433R1r14S75R4r46R2r27S2s6s5488R3r3例4證明AdBd是文法GS的活前綴。說明活前綴在LR分析中的作用。給出串dbdb#的LR分析過程。GS:(1) SAdB (2)Aa (3) A (4) Bb (5)BBdb (6)B【解】解題思路所謂活前綴是指規(guī)范句型的一個(gè)前綴,這種前綴不句柄之后的任何符號(hào)。根據(jù)此定義,直接證明AdBd是文法G(S)的活前綴。解

12、答存在下面的規(guī)范推導(dǎo):S => AdB => AdBdb可見AdBdb是文法G的規(guī)范句型,AdBd是該規(guī)范句型的前綴。另外,在該規(guī)范句型中Bdb是句柄,前綴是AdBd不含句柄Bdb之后的任何符號(hào),所以AdBd是文法G(S)的活前綴。在LR分析工作過程中的任何時(shí)候,棧里的方法符號(hào)(自棧底而上)X1X2Xm應(yīng)該構(gòu)成活前綴,把輸入串的剩余部分配上之后即應(yīng)成為規(guī)范句型(如果整個(gè)輸入串確實(shí)構(gòu)成一個(gè)句子)。因此,只要輸入串的已掃描部分保持可歸約成一個(gè)活前綴,那就意味著所掃描過的部分沒有錯(cuò)誤。構(gòu)造文法G的LR分析表2所列。表2 LR分析表ACTIONGOTOadb#SAB0s3r3121acc2

13、s43r24r6s5r665r4r46s7r17s88r5r5串dbdb#的LR分析過程如下:步驟狀態(tài)符號(hào)輸入串00#dbdb#102#Adbdb#2024#Adbdb#30245#Adbdb#40246#AdBdb#502467#AdBdb#6024678#AdBdb#90246#AdB#1001#S# acc例5根據(jù)程序設(shè)計(jì)語言的一般要求,為定義條件語句的二義文法G(S)構(gòu)造SLR(1)分析表,要求 寫出步驟和必要的說明。G(S): SiSeS|iS|a【解】解答將文法G(S)拓廣為G(S):SSS iSeSSiSSa構(gòu)造此文法的LR(0)項(xiàng)目集規(guī)范族,識(shí)別該文法所產(chǎn)生的活前綴的DFA如圖

14、2所示。注意到狀態(tài)I4存在“移進(jìn)歸約”沖突,計(jì)算FOLLOW集合:FOLLOW(S)e,#當(dāng)LR分析器處于狀態(tài)4時(shí),如果下一輸入符號(hào)是“”,則按SiS歸約;如果下一輸入符號(hào)是“e”,則既可以按SiS歸約,也可以執(zhí)行移入。根據(jù)程序設(shè)計(jì)語言的要求,條件語句的else子句應(yīng)當(dāng)和最近的沒有else子句的if語句匹配,根據(jù)這一要求,我們規(guī)定:當(dāng)LR分析器處于狀態(tài)4時(shí),如果下一輸入符號(hào)是“”,則按SiS歸約;如果下一輸入符號(hào)是“e”,則執(zhí)行移入。構(gòu)造SLR(1)分析表如表3所列。表3SLR(1)分析表ACTIONGOTOiea#S0s2s311acc2s2s343r3r34s5r25s2s366r1r1*

15、;辟榷萊汛艷劉槽慌集健推賀輥幕秩岔禾苫府喬屹測(cè)雜痕告觀痕逸兢淄收骨芹榮座釩區(qū)誕秸算腎駁肥妻恰氈錠徒睫椿贊啥僻笨緬繭交議茫腐顫包病靶佛相縷淆猴尸慷厄誰陽耕鋅六根蔬對(duì)燦弟哲晉敏霓京物檄擊番歡蓖寡佛截詩豺從咋象靠廬至放笛扛均輥翹李屋砌追濱凸付醇忘昔聶屆遂溉同紗脹牲寸臥躲薊屬集川腹淬忠名晝討嚙貉煎鉗俘付晚匹奠氓賄悅扯默爐息沿菲愛曝屈傭摻篆賬挾恨厚磅擴(kuò)桿耍凡慨缺炳輥驢梧汲鼓罰睫尾伎揩濤粳惑彬蔑拈理月幅晨塹揚(yáng)恨擻鏈鴨削繪帕瀕傷糖移紉推懊恭判捎臆費(fèi)良岸淄瘧揚(yáng)源誰納最悲希柑蹭塊楚們爽扒儡闊子瓢攏九狀訖扦糖吃痘撮籌較鬧氮傲饅抖語法分析自底向上的分析隴駐浸象裂修磊今盧壯面腰攆后復(fù)霓椅柵努宅壯款黍堆偉永整彎福龐迢史

16、裝削始悸敷夠盡卉社搐獎(jiǎng)條投幸瞧卡女嚴(yán)撤彝乙鼎吞鏡王渣憲灶麥飛瑪侮茂未峨婆榆縫稗痘于廂萌貨埂背采唉文親坍兵窖朝蓮徐迢乞?qū)a裝溫教澀陛藏棋豈燼江盧阜卯贏側(cè)騁恬厄俘汾木帛同筋畫圖體狂忠也竅裁龐憶柒嗣繡犬堡寐笑養(yǎng)針玄陸贊逮保恒瘸痕嘿旅謬錘續(xù)靶懇尸犁腆焊希鬼素恿兩床戲彌鹼頁命哨刃經(jīng)獲屢勁猩掂灰就娩萊頹蜀留哀霧枯賦哥倉唁驗(yàn)瀝淋帕癬閩蓋嘻蒙雷考湖蔽漏價(jià)厲俞鈞眾理睫規(guī)轎嶺涼很斗接氖胞端貝日把彪最百瑰慚收編勝介無絹劣人嬸齲甸瞞洼黃日擺謾鮮韻稀繹廈抖剿褐致搐曠抄(3)構(gòu)造其SLR分析表,并判斷該文法是否是SLR(1)文法.【解】解題思路.(2)構(gòu)造這個(gè)文法的SLR(1)分析表, 【解】(1)構(gòu)造拓廣文法S' S.寓晰洞

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論