版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章1、將編譯程序分成若干個(gè)“遍”是為了 。a .提高程序的執(zhí)行效率b 使程序的結(jié)構(gòu)更加清晰c .利用有限的機(jī)器內(nèi)存并提高機(jī)器的執(zhí)行效率d 利用有限的機(jī)器內(nèi)存但降低了機(jī)器的執(zhí)行效率2、 構(gòu)造編譯程序應(yīng)掌握。a 源程序c .編譯方法3、 變量應(yīng)當(dāng)。a .持有左值c .既持有左值又持有右值4、編譯程序絕大多數(shù)時(shí)間花在a .出錯(cuò)處理c 目標(biāo)代碼生成5、 不可能是目標(biāo)代碼。a 匯編指令代碼c 絕對(duì)指令代碼b. 目標(biāo)語(yǔ)言d.以上三項(xiàng)都是b. 持有右值d.既不持有左值也不持有右值上。b.詞法分析d.管理表格b.可重定位指令代碼d.中間代碼6、使用可以定義一個(gè)程序的意義。a.語(yǔ)義規(guī)則b.語(yǔ)法規(guī)則c.產(chǎn)生規(guī)
2、則d.詞法規(guī)則7、 詞法分析器的輸入是 。a.單詞符號(hào)串b.源程序c.語(yǔ)法單位d.目標(biāo)程序8、 中間代碼生成時(shí)所遵循的是-。a .語(yǔ)法規(guī)則c .語(yǔ)義規(guī)則b.詞法規(guī)則d.等價(jià)變換規(guī)則9、 編譯程序是對(duì)。a 匯編程序的翻譯c .機(jī)器語(yǔ)言的執(zhí)行10、語(yǔ)法分析應(yīng)遵循a 語(yǔ)義規(guī)則c 構(gòu)詞規(guī)則b.高級(jí)語(yǔ)言程序的解釋執(zhí)行d.高級(jí)語(yǔ)言的翻譯b.語(yǔ)法規(guī)則d.等價(jià)變換規(guī)則則,并且語(yǔ)義規(guī)則可以定義一個(gè)程序的意義。因此選a。二、多項(xiàng)選擇題1、 編譯程序各階段的工作都涉及到 。a .語(yǔ)法分析b.表格管理c.出錯(cuò)處理d .語(yǔ)義分析e .詞法分析2、編譯程序工作時(shí),通常有 階段。a .詞法分析b.語(yǔ)法分析c.中間代碼生成d
3、 .語(yǔ)義檢查e .目標(biāo)代碼生成三、填空題1 、解釋程序和編譯程序的區(qū)別在于 。2、 編譯過程通常可分為 5個(gè)階段,分別是、語(yǔ)法分析、代碼優(yōu)化和目標(biāo)代碼生成。3、 編譯程序工作過程中,第一段輸入是 ,最后階段的輸出為 程序。4、 編譯程序是指將 程序翻譯成 程序的程序。單選解答1、 將編譯程序分成若干個(gè)“遍”是為了使編譯程序的結(jié)構(gòu)更加清晰,故選b。2、 構(gòu)造編譯程序應(yīng)掌握源程序、目標(biāo)語(yǔ)言及編譯方法等三方面的知識(shí),故選d。3、 對(duì)編譯而言,變量既持有左值又持有右值,故選c。4、 編譯程序打交道最多的就是各種表格,因此選do5、 目標(biāo)代碼包括匯編指令代碼、可重定位指令代碼和絕對(duì)指令代碼3種,因此不是
4、目標(biāo)代碼 的只能選do6、詞法分析遵循的是構(gòu)詞規(guī)則,語(yǔ)法分析遵循的是語(yǔ)法規(guī)則,中間代碼生成遵循的是語(yǔ)義規(guī)7、b 8c 9、 d 10 、 c多選解答1. b、c 2. a 、b、c、e填空解答4、源程序 目是否生成目標(biāo)程序2、詞法分析中間代碼生成3、源程序 目標(biāo)代碼生成標(biāo)語(yǔ)言第二章、單項(xiàng)選擇題1、文法 G StxSx|y所識(shí)別的語(yǔ)言是a. xyxb. (xyx)*c. xn n,yx (n > 0)d. x*yx*2、文法G描述的語(yǔ)言L(G)是指a. L(G)= a |S? a c. L(G)= a |S?* a ,a Vt*a (VtU Vn*)b. L(G)= a |S ?d. L(
5、G)= a |S?a , a Vt*a , a (VtU Vn*)3、有限狀態(tài)自動(dòng)機(jī)能識(shí)別a. 上下文無(wú)關(guān)文法b.上下文有關(guān)文法c.正規(guī)文法d.短語(yǔ)文法4、設(shè)G為算符優(yōu)先文法,G的任意終結(jié)符對(duì)a、b有以下關(guān)系成立a.若 f(a)>g(b),則a>bb.若 f(a)<g(b),貝U a<bc. ab都不一定成立d. ab 一定成立5、如果文法 G是無(wú)二義的,則它的任何句子a 。a. 最左推導(dǎo)和最右推導(dǎo)對(duì)應(yīng)的語(yǔ)法樹必定相同b. 最左推導(dǎo)和最右推導(dǎo)對(duì)應(yīng)的語(yǔ)法樹可能不同c. 最左推導(dǎo)和最右推導(dǎo)必定相同d. 可能存在兩個(gè)不同的最左推導(dǎo),但它們對(duì)應(yīng)的語(yǔ)法樹相同6、 由文法的開始符經(jīng)
6、0步或多步推導(dǎo)產(chǎn)生的文法符號(hào)序列是 a.短語(yǔ) b.句柄c. 句型 d.句子7、文法 G Et E+T|TTt T*P|PPt (E)|I則句型P+T+i的句柄和最左素短語(yǔ)為 。+T 和 i b. P 和 P+T c. i 和 P+T+i 和 T8 、設(shè)文法為:St SA|A9、文法GStb| A (T)Tt T,S|SAt a|b則對(duì)句子aba,卜面是規(guī)范推導(dǎo)。a.sSAsaaAAAaAAabAabab.ssasaaAAAAAaAbaabac.ssasaaSAaSbaAbaabad.ssaSaSAaSbaAbaaba則 FIRSTVT(T)10、a. 011、a. b, A ,(b. b, A
7、 ,)產(chǎn)生正規(guī)語(yǔ)言的文法為b. 1型采用自上而下分析,必須a.消除左遞歸b.消除右遞歸c.b, A ,(, , c. 2型c.消除回溯d.b,12、在規(guī)范歸約中,用來(lái)刻畫可歸約串。a.直接短語(yǔ)b.句柄c.最左素短語(yǔ)A ,), , .3型.提取公共左因子.素短語(yǔ)13、有文法 G: Et E*T|TTt T+i|i句子1+2*8+6按該文法 G歸約,其值為a. 23 B. 42 c. 30d. 1714、規(guī)范歸約指a.最左推導(dǎo)的逆過程b.最右推導(dǎo)的逆過程c.規(guī)范推導(dǎo)d.最左歸約的逆過程二、多項(xiàng)選擇題1、下面哪些說(shuō)法是錯(cuò)誤的a.有向圖是一個(gè)狀態(tài)轉(zhuǎn)換圖b.狀態(tài)轉(zhuǎn)換圖是一個(gè)有向圖c.有向圖是一個(gè)DFA可
8、以用狀態(tài)轉(zhuǎn)換圖表示2、對(duì)無(wú)二義性文法來(lái)說(shuō),一棵語(yǔ)法樹往往代表了 a.多種推導(dǎo)過程b.多種最左推導(dǎo)過程c. 一種最左推導(dǎo)過程FHcS3、如果文法G存在一個(gè)句子,滿足下列條件 之一時(shí),則稱該文法是二義文法。a. 該句子的最左推導(dǎo)與最右推導(dǎo)相同b. 該句子有兩個(gè)不同的最左推導(dǎo)c. 該句子有兩棵不同的最右推導(dǎo)d. 該句子有兩棵不同的語(yǔ)法樹e. 該句子的語(yǔ)法樹只有一個(gè)4、有一文法G: St ABA t aAb| e它不產(chǎn)生下面集合。a.d.a. ac. ae. anbmcndmn,m >0 n m m .n,b c d |n,m >0nbncndn|n >0自下而上的語(yǔ)法分析中,句型b
9、.b. ad. a應(yīng)從句子文法的開始符e.句柄6、對(duì)正規(guī)文法描述的語(yǔ)言,以下型文法型文法 c.上下文無(wú)關(guān)文法nbncmdm| n,m>0nbncmdnjn,m > 0開始分析。c.以單詞為單位的程序有能力描述它。d.右線性文法e.左線性文法三、填空題1、文法中的終結(jié)符和非終結(jié)符的交集是。詞法分析器交給語(yǔ)法分析器的文法符號(hào)一定,它一定只出現(xiàn)在產(chǎn)生式的部。2、最左推導(dǎo)是指每次都對(duì)句型中的非終結(jié)符進(jìn)行擴(kuò)展。3、在語(yǔ)法分析中,最常見的兩種方法一定是分析法,另一是分析法。4、 采用 語(yǔ)法分析時(shí),必須消除文法的左遞歸。5、 樹代表推導(dǎo)過程, 樹代表歸約過程。6、 自下而上分析法采用 、歸約、錯(cuò)
10、誤處理、 等四種操作。7、 Chomsky把文法分為 種類型,編譯器構(gòu)造中采用 和文法,它們分別產(chǎn)生和語(yǔ)言,并分別用 和自動(dòng)機(jī)識(shí)別所產(chǎn)生的語(yǔ)言。四、判斷題1、文法StaS|bR| e描述的語(yǔ)言是 (a|bc)*2、在自下而上的語(yǔ)法分析中,語(yǔ)法樹與分析樹一定相同。()3、二義文法不是上下文無(wú)關(guān)文法。()4、語(yǔ)法分析時(shí)必須先消除文法中的左遞歸。()5、規(guī)范歸約和規(guī)范推導(dǎo)是互逆的兩個(gè)過程。()6、一個(gè)文法所有句型的集合形成該文法所能接受的語(yǔ)言。()五、簡(jiǎn)答題1、句柄2、素短語(yǔ)3、語(yǔ)法樹4、歸約5、推導(dǎo) 六、問答題1、給出上下文無(wú)關(guān)文法的定義。2、文法 GS :S t aSPQ|abQQi PQbPt
11、bbbQ tbccQtcc(1)它是Chomsky哪一型文法( 2)它生成的語(yǔ)言是什么3、按指定類型,給出語(yǔ)言的文法。L=aibj |j > i > 1的上下文無(wú)關(guān)文法。4、有文法 G: St aAcB|BdAt AaB|cBtbScA|b( 1)試求句型 aAaBcbbdcc 和 aAcbBdcc 的句柄;( 2)寫出句子 acabcbbdcc 的最左推導(dǎo)過程。5、對(duì)于文法 GS :S t( l) |aS|a L t l, S|S(1)畫出句型(S, (a)的語(yǔ)法樹。(2)寫出上述句型的所有短語(yǔ)、直接短語(yǔ)、句柄和素短語(yǔ)。6、考慮文法 GT :TtT*F|FFt Ff P|PPt(
12、 T)|i證明T*P f( T*F)是該文法的一個(gè)句型,并指出直接短語(yǔ)和句柄。單選解答1 、選 c。2、選 a。3、選 c。4、雖然a與b沒有優(yōu)先關(guān)系,但構(gòu)造優(yōu)先函數(shù)后,a與b就一定存在優(yōu)先關(guān)系了。所以,由f(a)>g)(b) 或f(a)<g(b)并不能判定原來(lái)的a與b之間是否存在優(yōu)先關(guān)系:故選c。d,如果有兩個(gè)不同的是了左推導(dǎo),則必然有二義性。故選a。6、選 c。7、 由圖2-8-1的語(yǔ)法樹和優(yōu)先關(guān)系可以看出應(yīng)選bo5、如果文法G無(wú)二義性,則最左推導(dǎo)是先生長(zhǎng)右邊的枝葉:對(duì)于E/|E + F/匕IE + T PIT iP#< + >+< i >#8、 規(guī)范推
13、導(dǎo)是最左推導(dǎo),故選d。9、由 TtT,和 ( 得 FIRSTVT(T)=(, , );由 Tt S 得 FIRSTVT(S)? FIRSTVT(T),而 FIRSTVT(S)=b, A ,(;即10、dFIRSTVT(T)=b, A ,(,;因此選c。13 、b 14 、b11、c12、b多選解答1 、 e、 a、c 2、a、c、e 3、b、c、d 4 、a、c5 、b、c 6、a、b、c、d、e填空解答1、空集終結(jié)符右2 、最左3、自上而上自下而上4、自上而上5、語(yǔ)法分析6 、移進(jìn)接受7、4 2 型3型上下文無(wú)關(guān)語(yǔ)言正規(guī)語(yǔ)言下推自動(dòng)機(jī)有限判斷解答1、對(duì) 2、錯(cuò) 3、錯(cuò) 4、錯(cuò) 5、錯(cuò) 6、錯(cuò)
14、簡(jiǎn)答解答1 、句柄:一個(gè)句型的最左直接短語(yǔ)稱為該句型的句柄。2、素短語(yǔ):至少含有一個(gè)終結(jié)符的素短語(yǔ),并且除它自身之外不再含任何更小的素短語(yǔ)。3、語(yǔ)法樹:滿足下面 4個(gè)條件的樹稱之為文法 GS的一棵語(yǔ)法樹。 每一終結(jié)均有一標(biāo)記,此標(biāo)記為VnU Vt中的一個(gè)符號(hào); 樹的根結(jié)點(diǎn)以文法 GS的開始符S標(biāo)記; 若一結(jié)點(diǎn)至少有一個(gè)直接后繼,則此結(jié)點(diǎn)上的標(biāo)記為M中的一個(gè)符號(hào); 若一個(gè)以A為標(biāo)記的結(jié)點(diǎn)有 K個(gè)直接后繼,且按從左至右的順序,這些結(jié)點(diǎn)的標(biāo)記分別 為X,X2,Xk,貝U AXi,X2,Xk,必然是 G的一個(gè)產(chǎn)生式。4、 歸約:我們稱仏丫直接歸約出a AB,僅當(dāng)Ay 是一個(gè)產(chǎn)生式,且a、B(VnU V
15、t)* 歸約過程就是從輸入串開始,反復(fù)用產(chǎn)生式右部的符號(hào)替換成產(chǎn)生式左部符號(hào),直至文法開始符。5、 推導(dǎo):我們稱a A B直接推出ayB, 即a A B ayB,僅當(dāng)丫是一個(gè)產(chǎn)生式,且a、(VnU Vt)*。如果a 1 a 2 a n,則我們稱這個(gè)序列是從a1至a 2的一個(gè)推導(dǎo)。若存在一個(gè)從a ia n的推導(dǎo),則稱a 1可推導(dǎo)出a n。推導(dǎo)是歸約的逆過程。問答1解答一個(gè)上下文無(wú)關(guān)文法 G是一個(gè)四元式(Vt,Vn,S, P ),其中: Vt是一個(gè)非空有限集,它的每個(gè)元素稱為終結(jié)符號(hào); Vn是一個(gè)非空有限集,它的每個(gè)元素稱為非終結(jié)符號(hào),VtA Vn=; S是一個(gè)非終結(jié)符號(hào),稱為開始符號(hào); P是一個(gè)
16、產(chǎn)生式集合(有限),每個(gè)產(chǎn)生式的形式是 Pa,其中,P Vn, a (VtU Vn)*。開始符號(hào)S至少必須在某個(gè)產(chǎn)生式的左部出現(xiàn)一次。2解答(1) 由于產(chǎn)生式左部存在終結(jié)符號(hào),且所有產(chǎn)生式左部符號(hào)的長(zhǎng)度均小于等于產(chǎn)生式右部的符 號(hào)長(zhǎng)度,所以文法 GS是Chomsky1型文法,即上下文有關(guān)文法。(2) 按產(chǎn)生式出現(xiàn)的順序規(guī)定優(yōu)先級(jí)由高到低(否則無(wú)法推出句子),我們可以得到:S abQ abcS aSPQ aabQPQ aabPQQ aabbQQ aabbcQ aabbccS aSPQ aaSPQPQ aaabQPQPQ aaabPQQPQ aaabPQPQQ aaaPPQQQaaabbPqqq
17、aaabbQQQ aaabbbcQQ aaabbbccQ aaabbbccc于是得到文法 GS生成的語(yǔ)言L=anbncn|n >13【解答】(1)由L=ai bj |j > i > 1知,所求該語(yǔ)言對(duì)應(yīng)的上下文無(wú)關(guān)文法首先應(yīng)有St aSb型產(chǎn)生式,以保證b的個(gè)數(shù)不少于a的個(gè)數(shù);其次,還需有 St Sb或StbS型的產(chǎn)生式,用以保證 b的個(gè)數(shù)多 于a的個(gè)數(shù);也即所求上下文無(wú)關(guān)文法GS為:GS : St aSb|Sb|b4【解答】(1 )分別畫出對(duì)應(yīng)兩句型的語(yǔ)法樹,如圖2-8-2所示(1)句型(S,(a)的語(yǔ)法樹如圖2-8-3 所示(2)由圖2-8-3可知:(L)L,SIS (
18、L )IS短語(yǔ):S、a、(a)、S,(a)、 直接短語(yǔ):a、S; 句柄:S; 素短語(yǔ):素短語(yǔ)可由圖2-8-3中相鄰終結(jié)符之間的優(yōu)先關(guān)系求得,即;#<( <(<$) #因此素短語(yǔ)為a。6【解答】/1句柄:AaB Bda /I A zVW/ IA a B b S cAB d c圖2-8-2 語(yǔ)法樹(2) 句子acabcbbdcc的最左推導(dǎo)如下:S aAcB aAaBcB acaBcB acabcB acabcbScA acabcbBdcAacabcbbdcA acabcbbdcc5【解答】/1首先構(gòu)造T*P f( T*F)的語(yǔ)法樹如圖2-8-4所示。由圖2-8-4可知,T*Pf(
19、 T*F)是文法GT的一個(gè)句型。直接短語(yǔ)有兩個(gè),即 P和T*F ;句柄為P。第三章單項(xiàng)選擇題1、 詞法分析所依據(jù)的是_。a. 語(yǔ)義規(guī)則b.構(gòu)詞規(guī)則2、 詞法分析器的輸出結(jié)果是_。a.單詞的種別編碼c.單詞的種別編碼和自身值3、 正規(guī)式M和M等價(jià)是指 。a. M i和M2的狀態(tài)數(shù)相等c. M i和M所識(shí)別的語(yǔ)言集相等c.語(yǔ)法規(guī)則d.等價(jià)變換規(guī)則b. 單詞在符號(hào)表中的位置d.單詞自身值b. M i和M的有向弧條數(shù)相等d. M i和M狀態(tài)數(shù)和有向弧條數(shù)相等4、狀態(tài)轉(zhuǎn)換圖(見圖 3-6-1 )接受的字集為1a.以0開頭的二進(jìn)制數(shù)組成的集合b. 以0結(jié)尾的二進(jìn)制數(shù)組成的集合c. 含奇數(shù)個(gè)0的二進(jìn)制數(shù)組成
20、的集合d. 含偶數(shù)個(gè)0的二進(jìn)制數(shù)組成的集合5、詞法分析器作為獨(dú)立的階段使整個(gè)編譯程序結(jié)構(gòu)更加簡(jiǎn)潔、明確,因此,_。a.c.詞法分析器應(yīng)作為獨(dú)立的一遍b.詞法分析器作為子程序較好詞法分析器分解為多個(gè)過程,由語(yǔ)法分析器選擇使用d.詞法分析器并不作為一個(gè)獨(dú)立的階段多項(xiàng)選擇題1、 在詞法分析中,能識(shí)別出 。a.基本字b.四元式c.運(yùn)算符d.逆波蘭式e.常數(shù)2、 令刀=a,b,則刀上所有以b開頭,后跟若干個(gè)ab的字的全體對(duì)應(yīng)的正規(guī)式為 。a. b(ab)*b. b(ab) +c.(ba)*bd. (ba) be. b(a|b)三、填空題1、 確定有限自動(dòng)機(jī) DFA是的一個(gè)特例。2、 若二個(gè)正規(guī)式所表示的
21、 相同,則認(rèn)為二者是等價(jià)的。3、 一個(gè)字集是正規(guī)的,當(dāng)且僅當(dāng)它可由 所。四、判斷題1、 一個(gè)有限狀態(tài)自動(dòng)機(jī)中,有且僅有一個(gè)唯一終態(tài)。()2、 設(shè)r和s分別是正規(guī)式,則有 L( r|s )=L(r)|L(s)。()3、 自動(dòng)機(jī)M和M'的狀態(tài)數(shù)不同,則二者必不等價(jià)。()4、 確定的自動(dòng)機(jī)以及不確定的自動(dòng)機(jī)都能正確地識(shí)別正規(guī)集。()5、 對(duì)任意一個(gè)右線性文法G,都存在一個(gè)NFA M滿足L(G)=L(M)。()6、 對(duì)任意一個(gè)右線性文法G,都存在一個(gè) DFA M滿足L(G)=L(M)。()7、對(duì)任何正規(guī)表達(dá)式e,都存在一個(gè)NFAM,滿足L(G)=L(e)。()8、對(duì)任何正規(guī)表達(dá)式e,都存在一個(gè)
22、DFAM,滿足L(G)=L(e)。()五、基本題1、設(shè)M=( x,y, a,b, f,x,y)為一非確定的有限自動(dòng)機(jī),其中f定義如下:f (x,a )= x,yf (x,b ) = yf (y,a )=0f (y,b ) = x,y試構(gòu)造相應(yīng)的確定有限自動(dòng)機(jī)M 。2、對(duì)給定正規(guī)式 b* (d|ad ) (b|ab ) +,構(gòu)造其 NFA M;單選解答1、b 2、c 3、c4、d 5、b多選解答 1、a、c、e 2、a、b、d填空解答1、NFA2、正規(guī)集3、DFA (NFA)所識(shí)別判斷解答1、2、3、錯(cuò)4、5、6、7、8正確基本1解答:對(duì)照自動(dòng)機(jī)的定義M=S,工,f,S 0,Z),由f的定義可知
23、1:(x,a)、f(y,b)均為多值函數(shù),所以是一非確定有限自動(dòng)機(jī),先畫出NFA M相應(yīng)的狀態(tài)圖,如圖3-6-2所示。.用子集法構(gòu)造狀態(tài)轉(zhuǎn)換矩陣表3-6-3所示。匚IIabI bbxx,yyy一x,yx,yx,yx,y將轉(zhuǎn)換矩陣中的所有子集重新命名而形成表3-6-4所示的狀態(tài)轉(zhuǎn)換矩陣。21考察1,2。由于1,2a=1,2b=2? 1,2,所以不再將其劃分了,也即整個(gè)劃分只有兩組0,1,2:令狀態(tài)1代表1,2所示化簡(jiǎn)DFA M'。,即把原來(lái)到達(dá).2的弧都導(dǎo)向1,并刪除狀態(tài)2。最后,得到如圖3-6-6a,b2解答:首先用3-6-7所示。A+=aA改造正規(guī)式得:b (d|ad)(b|ab)(
24、b|ab) ;其次,構(gòu)造該正規(guī)式的NFAM如圖b*(d|ad)(b|ab)(b|23Yadab12££bbaa-a d仟g K Y”廠J£ 4£表3-6-4狀態(tài)轉(zhuǎn)換矩陣ab0211一2222即得到 M =(0,1,2,a,b,f,0,1,2),其狀態(tài)轉(zhuǎn)換圖如圖3-6-5所示。將圖3-6-5的DFA M最小化。首先,將M'的狀態(tài)分成終態(tài)組1 , 2與非終態(tài)組0;其次,圖 3-6-7 的 NFA M第四章1、構(gòu)造下面文法的 LL( 1)分析表?!?TLTt int | realLt i d RRt , id R |£2、下面文法GS是否為L(zhǎng)
25、L (1 )文法說(shuō)明理由。S t A B | P Q xA t x y B t b cP t d P | eQ t a Q | e3、設(shè)有以下文法:GS:StaAbDe|dA tBSD|eB tSAc| cD| eD tSe| e(1) 求出該文法的每一個(gè)非終結(jié)符U的FOLLOW集。(2) 該文法是LL( 1)文法嗎(3) 構(gòu)造CS的LL( 1 )分析表。4、將文法GV改造成為L(zhǎng)L(1)的。GV:VtN|NEEtV|V+ENti5、已知文法:GA:At aAa| &(1 )該文法是LL (1)文法嗎為什么(2) 若采用LL (1)方法進(jìn)行語(yǔ)法分析,如何得到該文法的LL (1)分析表(3
26、) 若輸入符號(hào)串“ aaaa”,請(qǐng)給出語(yǔ)法分析過程。1解答:LL (1)分析表見表4-3-1分析 雖然這個(gè)文法很簡(jiǎn)單,我們還是從求開始符號(hào)集合和后繼符號(hào)集合開始。FOLLOW D =FOLLOV( L) =#FIRST ( D) =FIRST (T) =int, realFIRST ( L) =idFOLLOW T) =idFIRST ( R) = , , £ FOLLOW/ R) =#有了上面每個(gè)非終結(jié)符的FIRST集合,填分析表時(shí)要計(jì)算一個(gè)產(chǎn)生式右部a的FIRST (a )就不是件難事了。填表時(shí)唯一要小心的時(shí),&是產(chǎn)生式FHs右部的一個(gè)開始符號(hào),而 #在 FOLLO( R
27、)中,所 以FTs填在輸入符號(hào)#的欄目中。表4-3-1 LL (1)分析表非終結(jié)符輸入符號(hào)intrealid#Ddt tldt tlTTt intTt realLLt id RRRt ,id RRt&2解答: 該文法不是LL (1)文法,見下面分析中的說(shuō)明。分析只有三個(gè)非終結(jié)符有兩個(gè)選擇。1、P的兩個(gè)右部d P和&的開始符號(hào)肯定不相交。2、Q的兩個(gè)右部a Q和&的開始符號(hào)肯定不相交。3、對(duì)S來(lái)說(shuō),由于 x FIRST(A B),同時(shí)也有 x FIRST(P Q x)(因?yàn)镻和Q都可能為空) 所以該文法不是 LL (1)文法。3解答: (1)求文法的每一個(gè)非終結(jié)符U的FO
28、LLOW的過程如下:因?yàn)椋?S是識(shí)別符號(hào),且有 2 BSDSAc、Se,所以FOLLOW/ S)應(yīng)包含F(xiàn)IRST(D) U FIRST(Ac) U FIRST(e) U #=a,d U a,d,c,e U e U #=a,c,d,e# 又因?yàn)锳t BSD和D£,所以 FOLLOV中還包含 FOLLOW(A) 因?yàn)镾t aAbDe和Bt SAc,所以FOLLOW A) =FIRST (bDe)U FIRST ( c) =b,c綜合、得 FOLLO(S) =a,d,c,e,# U a,b,c,d,e,#因?yàn)?At BSD 所以 FOLLOW ( B) =FIRST (SD) =a,d因?yàn)?/p>
29、 St aAbDe | d、At BSD| e 和 Bt SAc | cD,所以FOLLOW D) =FIRST (e)U FOLLO( A)U FOLLOV/ B)=e U b,c U a,d=a,b,c,d,e(2) GS不是 LL ( 1)文法。因?yàn)楫a(chǎn)生式Bt SAc|cD| £中FIRST(SAc)n FOLLO( B) =a,d工?(3) 構(gòu)造GS的LL (1)分析表。按照LL (1)分析表的構(gòu)造算法構(gòu)造方法GS的LL (1)分析表如表4-3-2所示。表4-3-2 GS 的LL (1)分析表abcde#saAbDedABSDBSDBSDeBSac/ ecDSac/ eDSe
30、/ eeeSe/ ee4解答: 對(duì)文法GV提取公共左因子后得到文法:V : Vt NAAf |Ei VBBf |+ENR i求出文法G V中每一個(gè)非終結(jié)符號(hào)的FIRST集:FIRST(V)=iFIRST(A)=,£ FIRST(E)=iFIRST(B)=+,£ FIRST(N)=i求出文法G V中每一個(gè)非終結(jié)符號(hào)的FOLLOWI:FOLLOW(V)=# U FIRST(B) £ U FOLLOW(E)=#,+,FOLLOW(A)= FOLLOW(V)=+,#FOLLOW(E)= FIRST() £ U FOLLOW(B)= FIRST() £
31、U FOLLOW(E)=FOLLOW(B)= FOLLOW(E)= FOLLOW(N)= FIRST(A) £ U FOLLOW(V)=,+,#可以看到,對(duì)文法 G V的產(chǎn)生式Ar£ |E,有FIRST(E) A FOLLOW(A)= n +,#=?對(duì)產(chǎn)生式Br£ |+e,有FIRST(+E) n FOLLOW(B)=+n =?而文法的其他產(chǎn)生式都只有一個(gè)不為&的右部,所以文法G V是LL(1)文法。5解答:(1)因?yàn)楫a(chǎn)生式 Ar aAa| £有空產(chǎn)生式右部,而FOLLOW(A)=# U FIRST(a)=a, #造成 FIRST(A) A FO
32、LLOW(A)=A, £ A a, #工?所以該文法不是 LL( 1 )文法。(2)若采用LL (1)方法進(jìn)行語(yǔ)法分析,必須修改該文法。因該文法產(chǎn)生偶數(shù)(可以為0 )個(gè)a,所以得到文法G A :Ar aaA| £此時(shí)對(duì)產(chǎn)生式 Ar aaA| £, 有 FOLLOW(A)=# U FOLLOW(A)=#,因而FIRST(A) n FOLLOW(A)=a, £ n #= ?所以文法G' A是LL (1)文法,按LL (1)分析表構(gòu)造算法構(gòu)造該文法的LL (1)分析表如表4-3-3所示。表4-3-3文法G' A的LL(1)分析表A#AAt aa
33、AAt£(3)若采用LL(1)方法進(jìn)行語(yǔ)法分析,對(duì)符號(hào)串“aaaa”的分析過程如表 4-3-4所示。表4-3-4對(duì)符號(hào)串“ aaaa”的分析過程步驟分析棧輸入串產(chǎn)生式/動(dòng)作1#Aa a a a #At aaA2#A a aa a a a #匹配3#A aa a a #匹配4#Aa a #At aaA5#A a aa a #匹配6#A aa#匹配7#A#At£8#接受第五章1. 設(shè)有文法GS為:St a|b|(A)A SdA|S5-7-1 ,并判斷GS是否為算符優(yōu)先文法。算符優(yōu)先關(guān)系表(1) 完成下列算符優(yōu)先關(guān)系表,見表表 5-7-1ab()d#a?b?(?)?d#?(2)
34、給出句型(SdSdS的短語(yǔ)、簡(jiǎn)單短語(yǔ)、句柄、素短語(yǔ)和最左素短語(yǔ)。(3) 給出輸入串(adb) #的分析過程。解答:(1)先求文法 GS的FIRSTVT集和LASTVT集:由 Sta|b|(A)得:FIRSTVT(S)=a,b,();由 At Sd 得:FIRSTVT(A)=d;又由 At S 得:FIRSTVT(S) ? FIRSTVT(A),即 FIRSTVT(A)=d,a,b,(;由 St a|b|(A)得;LASTVT(S)=a,b,;由 A t dA 得:LASTVT(A)=d,又由 A t S 得:LASTVT(S) ? LASTVT(A),即 LASTVT(A)=d,a,b,)。構(gòu)
35、造優(yōu)先關(guān)系表方法如下: 對(duì)Ptab,或PtaQb,有a? b; 對(duì) PtaR,而 b FIRSTVT(R),有 a? b; 對(duì) PtRb,而 a FIRSTVT(R),有 a? b。由此得到: 由 St (A)得:(?); 由 St(A得:(? FIRSTVT(A),即:(? d,( ? a ,( ? b,( ?(;由 AtdA得:d? FIRSTVT(A), 即:d? d,d ? a,d ? b,d ?(; 由 St A)得,LASTVT(A)?),即:d? ),a ? ),b ? ),) ?);由 At Sd 得:LASTVT(S)? d,即:a ? d,b ? d,) ? d;此外,由#
36、S#得:#? # ;由#? FIRSTVT(S)得:#? a,# ? b,# ?(;脂由 LASTVT(S)? #得:d? #,a ? #,b ? #,) ? #。最后得到算符優(yōu)先關(guān)系表,見表5-7-2。表5-7-2算符優(yōu)先關(guān)系表ab()d#a?b?(?)?d?#?由表5-7-2為算符優(yōu)先文法。(2)為求出句型(可以看出,任何兩個(gè)終結(jié)符之間至少只滿足?、?、?三種優(yōu)先關(guān)系之一,故GS圖5-7-3 句型(SdSdS的語(yǔ)法樹SdSdS的短語(yǔ)、簡(jiǎn)單短語(yǔ)、句柄,我們先畫出該句型對(duì)應(yīng)的語(yǔ)法樹,如圖5-7-3所示。由圖5-7-3得到:短語(yǔ):S, SdS, SdSdS( SdSdS)簡(jiǎn)單短語(yǔ)(即直接短語(yǔ)):
37、S句柄(即最左直接短語(yǔ)):S素短語(yǔ):SdS,它同時(shí)也是該句型的最左素短語(yǔ)。(3)輸入串(adb) #的分析過程見表 5-7-4表5-7-4 輸入串(adb)#的分析過程符號(hào)棧輸入串說(shuō)明#(adb)#移進(jìn)#(adb)#移進(jìn)#( adb)#用Sa歸約#( Sdb)#移進(jìn)#( Sdb)#移進(jìn)#( Sdb)#用Sb歸約#( SdS)#用At S歸約#( SdA)#用At SdA歸約# (A)#移進(jìn)# (A)#用Sf( A)歸約#S#分析成功第六章一、單項(xiàng)選擇題1、若a為終結(jié)符,則Aaa 3為項(xiàng)目a. 歸約b.移進(jìn)c.接受d.待約2、 若項(xiàng)目集Ik含有Aa,則在狀態(tài)k時(shí),僅當(dāng)面臨的輸入符號(hào)a FOLLO
38、W(A時(shí),才采取“ Afa ”動(dòng)作的一定是。文法(0)文法 (1)文法 (1)文法3、 就文法的描述能力來(lái)說(shuō),有_。a. SLR( 1) ? LR( 0) b. LR (1) ? LR (0) c. SLR (1) ? LR ( 1) d.無(wú)二義文法? LR ( 1)4、 在LR (0)的ACTION子表中,如果某一行中存在標(biāo)記“j 的欄,貝U 。a. 該行必定填滿rjb.該行未填滿rjc.其他行也有rj子表中也有rj5、 一個(gè) 指明了在分析過程中的某時(shí)刻所能看到產(chǎn)生式多大一部分。a.活前綴b.前綴c.項(xiàng)目d.項(xiàng)目集、多項(xiàng)選擇題1、一個(gè)LR分析器包括。a.一個(gè)總控程序b. 一個(gè)項(xiàng)目集c. 一個(gè)
39、活前綴d. 一張分析表e. 一個(gè)分析棧2、LR分析器核心部分是一張分析表,該表包括 等子表。(1)分析b.優(yōu)先關(guān)系3、每一項(xiàng)ACTIONS, a所規(guī)定的動(dòng)作包括a.移進(jìn)b. 比較c. 接受d. 歸約e.報(bào)錯(cuò)4、對(duì)LR分析表的構(gòu)造,有可能存在動(dòng)作沖突。a.移進(jìn)b.歸約c.移進(jìn)/歸約d.移進(jìn)/移進(jìn)e.歸約/歸約d. LR (1) ?無(wú)二義文法e. SLR (1) ?無(wú)二義文法5、就文法的描述能力來(lái)說(shuō),有a. SLR (1) ? LR (1)b. LR ( 1) ? SLR( 1)c. LR ( 0) ? LR (1)6、對(duì)LR分析器來(lái)說(shuō),存在 _等分析表的構(gòu)造方法。(0)(1) ( 0)(1)7、
40、 自上而下的語(yǔ)法分析方法有 。a.算符優(yōu)先分析法(1)分析法(1)分析法(0)分析法(1)分析法三、填空題1、 對(duì)于一個(gè)文法,如果能夠構(gòu)造 _。使得它的 _均是唯一確定的,則稱該文法為L(zhǎng)R文法。2、 字的前綴是指該字的 。3、 活前綴是指 的一個(gè)前綴,這種前綴不含 之后的任何符號(hào)。4、 在LR分析過程中,只要 的已掃描部分保持可歸約成一個(gè) ,則掃描過的部分正確。5、 將識(shí)別 的NFA確定化,使其成為以 為狀態(tài)的DFA這個(gè)DFA就是建立 的基礎(chǔ)。6、 Aa稱為項(xiàng)目;對(duì)文法開始符 S'fa為項(xiàng)目;若a為終結(jié)符,則稱Aaa B為項(xiàng)目;若B為非終結(jié)符,則稱 Aaa 3為項(xiàng)目。7、LR ( 0)
41、分析法的名字中“ L”表示, “ R”表示, “ 0”表示。四、綜合題1、對(duì)于文法 GS : S t AS|bAt SA|a(1) 列出所有LR ( 0)項(xiàng)目(2) 列出構(gòu)成文法 LR ( 0)項(xiàng)目集規(guī)范族。單項(xiàng)解答:1 、At%稱為歸約項(xiàng)目,對(duì)文法開始符 S'的歸約項(xiàng)目,如S't%稱為接受項(xiàng)目,ATaa3 (a為終結(jié)符)稱為移進(jìn)項(xiàng)目。在此選b.2、 當(dāng)用產(chǎn)生式 ATa歸約時(shí),LR ( 0 )無(wú)論面臨什么輸入符號(hào)都進(jìn)行歸約;SLR( 1)則僅當(dāng)面 臨的輸入符號(hào)a FOLLOW(A時(shí)進(jìn)行歸約;LR ( 1)則當(dāng)在把 a歸約為A的規(guī)范句型的前綴 3 Aa前 提下,當(dāng)a后跟終結(jié)符a時(shí)
42、,才進(jìn)行歸約;因此選 d。3、由于 LR (0) ? SLR (1) ? LR (1) ?無(wú)二義文法,故選 c。4、選 a。5、選 c。多選解答:1 、一個(gè)LR分析器包括一個(gè)總控程序和一張分析表,選a、d。2、選 c、e。3、選 a、c、d、e。4、 在LR分析表的構(gòu)造中有可能存在“移進(jìn)”/ “歸約”和“歸約” / “歸約”沖突;故選 c、e。5、選 a、b、c、d、e。6、選 a、b、c、e。7、選 a、 c、d、e。填空解答:1 、一張分析表 每個(gè)入口2、任意首部3、規(guī)范句型句柄4、輸入串活前綴5、活前綴項(xiàng)目集合 LR 分析算法6、歸約接受 移進(jìn) 待約7、自左至右分析采用最右推導(dǎo)的逆過程即
43、最左歸約 向右查看 0 個(gè)字符綜合解答:首先將文法G拓廣為GS':S't SSt AS|b3 SA|a(1)文法GS'的LR (0)項(xiàng)目是:1、s5、St AS *9、At s A2、S't S 6、St. b10、At SA-3、AS7、St b 11、At. a4、St A S8、At. SA12、At a 2、列出構(gòu)成文法 LR( 0)項(xiàng)目集規(guī)范族。用&-CLOSURE閉包)辦法構(gòu)造文法G'的 LR (0)項(xiàng)目集規(guī)范族如下:I 0:1、S't. sI 3 :9、At S AI 6: 12、 At a3、St as8、At. SA17
44、: 7、St b 8、At SA3、St. AS11 、a6、St. b6、St b11、Ar aI 1:2、S't S-I 4 :10、At SA-9、At S A4、St A S8、At SA3、St. as11、At. a6、St. b3、St. AS8、At. SA6、St. b11、Ar aI 2:4、St A SI 5 :5、St AS 3、St as9、At S A8 、SA11、a11 、a3、AS6、S» b注意:I1中的S't S和AtSA是由狀態(tài)Io中的1和3讀入一個(gè)S字符后得到的下一個(gè)項(xiàng)目;, 而丨4中的At SA和At A- S則是由I 3中
45、的9和3讀入一個(gè)A字符后得到的下一個(gè)項(xiàng)目;丨5中的 AS -和At S- A 則是由I 4中的4和8讀入一個(gè)S字符后得到的下一個(gè)項(xiàng)目。狀態(tài)全體構(gòu)成了文法 G的LR (0)規(guī)范族。第七章、單項(xiàng)選擇題1、中間代碼生成所依據(jù)的是 _c.語(yǔ)義規(guī)則d.等價(jià)變換規(guī)則a. 語(yǔ)法規(guī)則b.詞法規(guī)則2、 四元式之間的聯(lián)系是通過_實(shí)現(xiàn)的。a.指示器b.臨時(shí)變量c.符號(hào)表d.程序變量3、后綴式ab+cd+/可用表達(dá)式 來(lái)表示。+b/c+db.(a+b)/(c+d)+b/(c+d)+b+c/d4、 表達(dá)式鬥 AV B)A( CV D)的逆波蘭表示為 。a. n ABVA CDVb. A n BV CDVAc. AB V
46、n CDVAd. A n BVA CDV4+1皂一f5、 中間代碼的樹型表示A B C D 所對(duì)應(yīng)的表達(dá)式為。7、終結(jié)符具有屬性。a.傳遞b.繼承、多頂選擇題1、中間代碼主要有。a.四兀式b .二兀式+B+C+D +(B+C)+D6、四元式表示法的優(yōu)點(diǎn)為a.不便于優(yōu)化處理,但便于表的更動(dòng)c.便于優(yōu)化處理,也便于表的更動(dòng)c.(A+B)+C+Dd. (A+B)+(C+D)b. 不便于優(yōu)化處理,但節(jié)省存儲(chǔ)空間d.便于表的更動(dòng),也節(jié)省存儲(chǔ)空間c. 抽象d.綜合c 三元式d 后綴式e 間接三元式2、下面中間代碼形式中,能正確表示算術(shù)表達(dá)式a+b+c的有a. ab+c+b. abc+c.+ c+d 八a
47、7e . a+b+c3、 在下面的 語(yǔ)法制導(dǎo)翻譯中,采用拉鏈 -回填技術(shù)。a.賦值語(yǔ)句b. goto語(yǔ)句c .條件語(yǔ)句d.循環(huán)語(yǔ)句4、 下列中間代碼形式有益于優(yōu)化處理。a.三元式 b.四元式c.間接三元式d.逆波蘭表示法e .樹形表示法5、 在編譯程序中安排中間代碼生成的目的是 。a.便于進(jìn)行存儲(chǔ)空間的組織b.利于目標(biāo)代碼的優(yōu)化c.利于編譯程序的移植d.利于目標(biāo)代碼的移植e.利于提高目標(biāo)代碼的質(zhì)量6、下面的中間代碼形式中,能正確表示算術(shù)表達(dá)式a+b*c。題)*/+a.ab+c*b. abc*+c.a+b*c + c(d.a e7、三地址代碼語(yǔ)句具體實(shí)現(xiàn)通常有 表示方法。a.逆波蘭表示b .三元
48、式c.間接三元式d .樹形表示e .四元式三、填空題1、 中間代碼有 等形式,生成中間代碼主要是為了使。2、 語(yǔ)法制導(dǎo)翻譯既可以用來(lái)產(chǎn)生 代碼,也可以用來(lái)產(chǎn)生 指令,甚至可用來(lái)對(duì)輸入串進(jìn)行。3、 當(dāng)源程序中的標(biāo)號(hào)出現(xiàn)“先引用后定義”時(shí),中間代碼的轉(zhuǎn)移地址須持時(shí)才能確定,因而要進(jìn)行。4、 文法符號(hào)的屬性有兩種,一種稱為 ,另一種稱為 。5、 后綴式abc-/所代表的表達(dá)式是 ,表達(dá)式(a-b)*c 可用后綴式 表示。6、 用一張 輔以的辦法來(lái)表示中間代碼,這種表示法稱為間接三元式。四、綜合題1、 給出下列表達(dá)式的逆波蘭表示(后綴式): a*(-b+c) (A V B) A (C DA E)2、 寫出算術(shù)表達(dá)式:A+B*(C-D)+E/(C-D) f N的四元式序列;三元式序列;間接三元式序列 單選解答1 、選 c 。2、四元式之間的聯(lián)系是通過臨時(shí)變量實(shí)現(xiàn)的,故選b。3、選 b。4、選 b。5、選 d。6、四元式表示法的優(yōu)點(diǎn)與間接三元式相同,故選c。7、選 d。多選解答1、選a、c、d、e。2、b、d的中間代碼不能正確表示a+b+c,而e不是中間代碼:故選 a、c。3、凡涉及到跳轉(zhuǎn)的語(yǔ)句都需要采用拉鏈回填技術(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年房地產(chǎn)開發(fā)商中介客戶三方協(xié)議版B版
- 2024全新離婚財(cái)產(chǎn)分割協(xié)議及共同財(cái)產(chǎn)分割及財(cái)產(chǎn)清算協(xié)議下載2篇
- 2024年草籽種業(yè)科技研發(fā)與應(yīng)用推廣合同3篇
- 2024萬(wàn)科地產(chǎn)買賣合同正規(guī)范本二零二四年度合同附件示范3篇
- 2024年土地儲(chǔ)備居間服務(wù)協(xié)議163篇
- 2024年水泵房施工與水質(zhì)檢測(cè)服務(wù)合同3篇
- 2024年度三家企業(yè)股權(quán)聯(lián)合經(jīng)營(yíng)合同書3篇
- 2024年影視短片定制拍攝及特效制作全面合作協(xié)議3篇
- 2024年擔(dān)保協(xié)議:范文整合3篇
- 2024同居協(xié)議書:同居伴侶共同財(cái)產(chǎn)管理與生活信任協(xié)議3篇
- 普通胃鏡早期胃癌的診斷PPT課件
- DG∕T 154-2022 熱風(fēng)爐
- 鐵路建設(shè)項(xiàng)目施工企業(yè)信用評(píng)價(jià)辦法(鐵總建設(shè)〔2018〕124號(hào))
- 模具報(bào)價(jià)表精簡(jiǎn)模板
- 抽樣檢驗(yàn)培訓(xùn)教材(共47頁(yè)).ppt
- 時(shí)光科技主軸S系列伺服控制器說(shuō)明書
- 通用帶式輸送機(jī)TD75或DT型出廠檢驗(yàn)要求及記錄
- 高考英語(yǔ)單項(xiàng)選擇題題庫(kù)題
- lonely-planet-PDF-大全
- 成人大專畢業(yè)生自我鑒定
- 汽車轉(zhuǎn)向系統(tǒng)設(shè)計(jì)規(guī)范
評(píng)論
0/150
提交評(píng)論