編譯原理復習題及答案_第1頁
編譯原理復習題及答案_第2頁
編譯原理復習題及答案_第3頁
編譯原理復習題及答案_第4頁
編譯原理復習題及答案_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、編譯原理復習題及答案一、 選擇題1 一個正規語言只能對應(B)A 一個正規文法B 一個最小有限狀態自動機2 文法GA:A AaB BAb Ba是(A)A 正規文法B 二型文法3 下面說法正確的是(A)A 一個SLR(1)文法一定也是LALR(1)文法B 一個LR(1)文法一定也是LALR(1)文法4 一個上下文無關文法消除了左遞歸,提取了左公共因子后是滿足LL(1)文法的(A)A 必要條件B 充分必要條件5 下面說法正確的是(B)A 一個正規式只能對應一個確定的有限狀態自動機B 一個正規語言可能對應多個正規文法6 算符優先分析與規范歸約相比的優點是(A)A 歸約速度快B 對文法限制少7 一個L

2、R(1)文法合并同心集后若不是LALR(1)文法(B)A 則可能存在移進/歸約沖突B 則可能存在歸約/歸約沖突C 則可能存在移進/歸約沖突和歸約/歸約沖突8 下面說法正確的是(A)A Lex是一個詞法分析器的生成器B Yacc是一個語法分析器9 下面說法正確的是(A)A 一個正規文法也一定是二型文法B 一個二型文法也一定能有一個等價的正規文法10 編譯原理是對(C)。A、機器語言的執行B、匯編語言的翻譯C、高級語言的翻譯D、高級語言程序的解釋執行11 (A)是一種典型的解釋型語言。ABASICBCCFORTRANDPASCAL12 把匯編語言程序翻譯成機器可執行的目標程序的工作是由(B)完成的

3、。A. 編譯器B. 匯編器C. 解釋器D. 預處理器13 用高級語言編寫的程序經編譯后產生的程序叫(B)A源程序 B目標程序C連接程序D解釋程序14 (C)不是編譯程序的組成部分。A.詞法分析程序B.代碼生成程序 C.設備管理程序D.語法分析程序15 通常一個編譯程序中,不僅包含詞法分析,語法分析,語義分析,中間代碼生成,代碼優化,目標代碼生成等六個部分,還應包括(C)。A模擬執行器B解釋器 C表格處理和出錯處理     D符號執行器16 編譯程序絕大多數時間花在(D)上。A出錯處理B詞法分析C目標代碼生成D表格管理17 源程序是句子

4、的集合,(B)可以較好地反映句子的結構。A. 線性表B. 樹C. 完全圖D. 堆棧18 詞法分析器的輸出結果是(D)。A、單詞自身值B、單詞在符號表中的位置C、單詞的種別編碼D、單詞的種別編碼和自身值19 詞法分析器不能(D)A. 識別出數值常量B. 過濾源程序中的注釋C. 掃描源程序并識別記號D. 發現括號不匹配20 文法:G:SxSx | y所識別的語言是(D)。A、xyxB、(xyx)*C、x*yx*D、xnyxn (n0)21 如果文法G是無二義的,則它的任何句子(A)A最左推導和最右推導對應的語法樹必定相同B最左推導和最右推導對應的語法樹可能不同C最左推導和最右推導必定相同D可能存在

5、兩個不同的最左推導,但它們對應的語法樹相同22 正則文法(A)二義性的。A. 可以是B. 一定不是C. 一定是23 (B)這樣一些語言,它們能被確定的有窮自動機識別,但不能用正則表達式表示。A. 存在B. 不存在C. 無法判定是否存在24 給定文法AbA | ca,為該文法句子的是(C)A. bbaB. cabC. bcaD. cba25 設有文法GS:S®S1|S0|Sa|Sc|a|b|c,下列符號串中是該文法的句子有(D)A. ab0B. a0c01C. a0b0aD. bc1026 文法G產生的(D)的全體是該文法描述的語言。A句型B. 終結符集C. 非終結符集D.句子27 若

6、文法G定義的語言是無限集,則文法必然是(A)A遞歸的B. 上下文無關的C. 二義性的D. 無二義性的28 描述一個語言的文法是(B)A唯一的B. 不唯一的C. 可能唯一29 一個文法所描述的語言是(A)A唯一的B. 不唯一的C. 可能唯一30 采用自上而下分析,必須(A)。A、消除回溯B、消除左遞歸C、消除右遞歸D、提取公共左因子31 編譯過程中,語法分析器的任務是(A) 分析單詞的構成 分析單詞串如何構成語句 分析語句是如何構成程序 分析程序的結構A. B. C. D. 32 詞法分析器的輸入是( A)。A符號串 B源程序 C語法單位 D目標程序33 兩個有窮自動機等價是指它們的(C)。A狀

7、態數相等 B有向弧數相等C所識別的語言相等D狀態數和有向弧數相等34 若狀態k含有項目“A· ”,且僅當輸入符號aFOLLOW(A)時,才用規則“A ”歸約的語法分析方法是(D)。ALALR分析法BLR(0)分析法CLR(1)分析法 DSLR(1)分析法35 若a為終結符,則A · a為(B)項目。A歸約B移進C接受D待約36 在使用高級語言編程時,首先可通過編譯程序發現源程序的全部和部分(A)錯誤。A. 語法B. 語義C. 語用D. 運行37 喬姆斯基(Chomsky)把文法分為四種類型,即0型、1型、2型、3型。其中3型文法是(B)A. 非限制文法B. 正則文法C. 上

8、下文有關文法D. 上下文無關文法38 一個句型中的(A)稱為該句型的句柄。A. 最左直接短語B. 最右直接短語C. 終結符D. 非終結符39 在自底向上的語法分析方法中,分析的關鍵是(D)A. 尋找句柄B. 尋找句型C. 消除遞歸D. 選擇候選式40 在自頂向下的語法分析方法中,分析的關鍵是(C)A. 尋找句柄B. 尋找句型C. 消除遞歸D. 選擇候選式41 在LR分析法中,分析棧中存放的狀態是識別規范句型(C)的DFA狀態。A.句柄B. 前綴C. 活前綴D. LR(0)項目42 一個上下文無關文法G包括四個組成部分,它們是一組非終結符號,一組終結符號,一個開始符號,以及一組(B)A. 句子B

9、. 產生式C. 單詞D. 句型43 詞法分析器用于識別(C)A. 句子B. 產生式C. 單詞D. 句型44 編譯程序是一種(B)A. 匯編程序B. 翻譯程序C. 解釋程序D. 目標程序45 按邏輯上劃分,編譯程序第三步工作是(A)A. 語義分析B. 詞法分析C. 語法分析D. 代碼生成46 在語法分析處理中,FIRST集合、FOLLOW集合均是(B)A. 非終結符集B.終結符集C. 字母表D. 狀態集47 編譯程序中語法分析器接收以(A)為單位的輸入。A. 單詞B. 表達式C. 產生式D. 句子48 編譯過程中,語法分析器的任務就是(B)A. 分析單詞是怎樣構成的B. 分析單詞串是如何構成語句

10、和說明的C. 分析語句和說明是如何構成程序的D. 分析程序的結構49 若一個文法是遞歸的,則它所產生的語言的句子(A)。A.是無窮多個B.是有窮多個C.是可枚舉的D.個數是常量50 識別上下文無關語言的自動機是(C)A. 下推自動機B. NFAC. DFAD. 圖靈機51 編譯原理各階段工作都涉及(B)A.詞法分析B.表格管理C.語法分析D.語義分析52 正則表達式R1和R2等價是指(C)A. R1和R2都是定義在一個字母表上的正則表達式B. R1和R2中使用的運算符相同C. R1和R2代表同一正則集D. R1和R2代表不同正則集53 已知文法GS:SA1, AA1|S0|0。與G 等價的正規

11、式是(C)A. 0(0|1)*B. 1*|0*1C. 0(1|10)*1D. 1(10|01)*054 與(a|b)*(a|b)等價的正規式是(C)。A.a*| b*B.(ab)*(a|b)C. (a|b)(a|b)*D.(a|b)*55 (D)文法不是LL(1)的。A. 遞歸B. 右遞歸C. 2型D.含有公共左因子的56 給定文法AbA|cc,則符號串cc bcbc bcbcc bccbcc bbbcc中,是該文法句子的是(D)A. B. C. D. 57 LR(1)文法都是()A. 無二義性且無左遞歸B. 可能有二義性但無左遞歸C. 無二義性但可能是左遞歸D. 可以既有二義性又有左遞歸58

12、 文法EE+E|E*E|i的句子i*i+i*i有(C)棵不同的語法樹。A. 1B. 3C. 5D.759 文法 SaaS|abc 定義的語言是(C)。A.a2kbc|k>0B.akbc|k>0C.a2k-1bc|k>0D.akakbc|k>060 若B為非終結符,則 Aa.Bb 為(D)。A.移進項目B.歸約項目C.接受項目D.待約項目61 同心集合并可能會產生新的(D)沖突。A.二義B.移進/移進C.移進/歸約D.歸約/歸約62 就文法的描述能力來說,有(C)ASLR(1) LR(0)BLR(1) LR(0)CSLR(1) LR(1)D無二義文法 LR(1)63 如圖

13、所示自動機M,請問下列哪個字符串不是M所能識別的(D)。A. bbaaB. abbaC. ababD. aabb64 有限狀態自動機能識別(C)A.上下文無關語言B.上下文有關語言C.正規語言D.0型文法定義的語言65 已知文法G是無二義的,則對G的任意句型(A)A.最左推導和最右推導對應的語法樹必定相同B.最左推導和最右推導對應的語法樹可能相同C.最左推導和最右推導必定相同D.可能存在兩個不同的最左推導,但他們對應的語法樹相同66 (B)不是DFA的成分A.有窮字母表B.多個初始狀態的集合C.多個終態的集合D.轉換函數67 與逆波蘭式(后綴表達式)ab+c*d+對應的中綴表達式是(B)A.

14、a+b+c*dB. (a+b)* c+dC. (a+b)* (c+d)D. a+b*c+d68 后綴式abc+d+可用表達式(B)來表示。A( (a+b)c)+d B(a+(bc)+d C (a(b+c)+d D(a(b+c)+d69 表達式A*(B-C*(C/D)的后綴式為(B)。AABC-CD/* BABCCD/*-* CABC-*CD/* D以上都不對70 (D)不是NFA的成分。A. 有窮字母表B. 初始狀態集合C. 終止狀態集合D. 有限狀態集合二、 問答題1 將文法GS 改寫為等價的GS,使GS不含左遞歸和左公共因子。GS: SbSAe | bA AAb | d答:文法GS 改寫為

15、等價的不含左遞歸和左公共因子的G'S為:SbB BSAe | AAd A' A' bA' | 2 將文法GS 改寫為等價的G'S,使G'S不含左遞歸和左公共因子。GS: SSAe|Ae AdAbA|dA|d答:文法GS 改寫為等價的不含左遞歸和左公共因子的G'S為: S AeS'S' AeS'| A dA' A' AB| B bA | 3 將文法GS 改寫為等價的G'S,使G'S不含左遞歸和左公共因子。GS: SA AB|AS BaB|a答:文法GS 改寫為等價的不含左遞歸和左公共因

16、子的G'S為:S AA BAASA|B aBBB|4 判斷下面文法是否為LL(1)文法,若是,請構造相應的LL(1)分析表。SaHHaMd | dMAb | AaM | e答:首先計算文法的 FIRST集和FOLLOW集如下表。文法的 FIRST集和FOLLOW集 非終結符FIRST集FOLLOW集Sa.# .Ha ,d.# .Ma ,e ,d ,bAa ,e.b.由于predict(HaMd)predict(Hd)=ad = predict(MAb)predict(M)=a ,ed ,b = predict(AaM)predict(Ae)= a e = 所以該文法是LL(1)文法,L

17、L(1)分析表如下表。 adbe#SaH.    HaMdd.   MAb.Ab AaM.  e. 5 判斷下面文法是否為LL(1)文法,若是,請構造相應的LL(1)分析表。SaDDSTe|TbH|HHd|答:首先計算文法的 FIRST集和FOLLOW集如下表。 非終結符FIRST集FOLLOW集Sa#,b,d,e.Da,#,b,d,e Tb,d,eHd,e由于predict(DSTe)predict(D)=a# ,b ,d ,e =predict(TbH)predict(T

18、H)=be =predict(Hd)predict(H)= d e =所以該文法是LL(1)文法,LL(1)分析表如下表: aebd#SaD.    DSTeT H.bHH. H  d. 6 判斷下面文法是否為LL(1)文法,若是,請構造相應的LL(1)分析表。SaDDSTe|TbMMbHHM|答:文法的 FIRST集和FOLLOW集非終結符FIRST集FOLLOW集Sa.# ,bDa ,# ,bTb.e.Mb.e.Hb ,e.由于predict(DSTe)predict(D)=a# ,b=pr

19、edict(HM)predict(H)= b e =所以該文法是LL(1)文法,LL(1)分析表如下表: aeb#SaD.   DSTe T  bM M  bH H M. 7 某語言的拓廣文法G為:(0) SS(1) S Db|B(2) D d|(3) B Ba|證明G不是LR(0)文法而是SLR(1)文法,請給出SLR(1)分析表。答:拓廣文法G',增加產生式S'S在項目集I0中:有移進項目D ·d 歸約項目D ·和B 

20、3;存在移進-歸約和歸約-歸約沖突,所以G不是LR(0)文法。若產生式排序為:(0) S'S(1) S Db(2) S B(3) D d(4) D (5) B Ba(6) B G的LR(0)項目集族及識別活前綴的DFA如下圖:由產生式知Follow(S)=# Follow(D)= bFollow(B)= a ,#在I0中:Follow(D) d= b d=Follow(B) d= a ,# d=Follow(D) Follow(B)= ba ,# =在I3中:Follow(S) a=#a=所以在I0,I3中的移進-歸約和歸約-歸約沖突可以由Follow集解決,所以G是SLR(1)文法,

21、 構造的SLR(1)分析表如下表:狀態ACTIONGOTObda#SDB0r4S4r6r61231   acc   2S5      3  S6r2   4r3      5   r1   6  r5r5   8 給出與正規式R(ab)*(a|b*)ba等價的

22、NFA。答:與正規式R等價的NFA如下圖9 給出與正規式R((ab)*|b)*(a|(ba)*)a 等價的NFA。答:與正規式R等價的NFA如下圖10 給出與正規式 R(aba)*((ba)*|b)b等價的NFA。答:與正規式R等價的NFA如下圖11 將下圖的NFA確定化為DFA。答:用子集法確定化如下表IIaIb狀態X,1,21,2.1,2,31,2,Y1,2.1,2.1,2,Y1,2.1,2,31,2,31,2,31,2,3X123確定化后如下圖:12 將下圖的NFA確定化為DFA。答:用子集法確定化如下表IIaIb狀態X,0,1,30,1,3.2,3,Y.1,3.2,Y.Y.0,1,30

23、,1,31,3.1,3.2,3,Y2,3,YY.2,Y.Y.X1234Y確定化后如下圖13 某語言的拓廣文法G為:(0) ST (1) T aBd|(2) B Tb| 證明G不是LR(0)文法而是SLR(1)文法,請給出SLR(1)分析表。答:拓廣文法G',增加產生式S'T 在項目集I0中:有移進項目T ·aBd和歸約項目T ·存在移進-歸約沖突,所以G不是LR(0)文法。 若產生式排序為: (0) S'T(1) T aBd(2) T (3) B Tb(4) B G'的LR(0)項目集族及識別活前綴的DFA如下圖所示:識別G活前綴的DFA由產

24、生式知:Follow(T)=#,b Follow(B)= d在I0中: Follow(T) a=# ,b a=在I2中:Follow(B) a= d a=Follow(T) a=# ,b a=Follow(B) Follow(T) = d# ,b=所以在I0,I2,中的移進-歸約和歸約-歸約沖突可以由Follow集解決,所以G是SLR(1)文法。 構造的SLR(1)分析表如下表。SLR(1)分析表nameACTIONGOTOabd#TB0S2r2 r21 1   acc  2S2r2r4r2433  S5

25、   4 S6    5 r1 r1  6  r3   14 某語言的文法G為: E aTd| T Eb|a證明G不是LR(0)文法而是SLR(1)文法,請給出該文法的SLR(1)分析表。答:拓廣文法G',增加產生式S'E在項目集I0中: 有移進項目E ·aTd和歸約項目E· 存在移進-歸約沖突,所以G不是LR(0)文法。 .若產生式排序為:(0) SE (1) E aTd (2) E (3

26、) T Eb (4) T aG的LR(0)項目集族及識別活前綴的DFA如下圖:由產生式知:Follow(E)=# ,b Follow(T)= d在I0 ,I2中:Follow(E) a=# ,b a=在I5 中:Follow(E) a=# ,b a=Follow(T) a= d a=Follow(T) Follow(E) = d # ,b=所以在I0 , I2 , I5中的移進-歸約和歸約-歸約沖突可以由Follow集解決,所以G是SLR(1)文法。構造的SLR(1)分析表如下表:nameACTIONGOTOabd#ET0S2r2 r21 1  

27、0;acc  2S5r2 r2433  S6   4 S7    5S5r2r4r2436 r1 r1  7  r3   15 給出文法GS的LR(1)項目集規范族中I0項目集的全體項目。GS為: S BD|D B aD|b D BI0:答:I0:16 給出文法GS的LR(1)項目集規范族中I0項目集的全體項目。GS為: S D;D|D D DB|B B a|bI0:答:I0:

28、17 給出文法GS的LR(1)項目集規范族中I0項目集的全體項目。GS為: S S;V|V V VaA|A A b(S)| I0:答:I0:18 文法GM及其LR分析表如下,請給出對串dbba#的分析過程。GM: 1) M VbA2) V d3) V 4) A a5) A Aba6) A nameACTIONGOTObda#MAV0r3 S3  1 21   acc   2S4      3r2    &#

29、160; 4r6 S5r6 6 5r4  r4   6S7  r1   7  S8    8r5  r5   答:對串dbba#的分析過程如下表步驟狀態棧文法符號棧剩余輸入符號動作12345678900302024024602467024678024601#d#V#Vb#VbA#VbAb#VbAba#VbA#Mdbba#bba#bba#ba#ba#

30、a#移進用V d歸約移進用A 歸約移進移進用A Aba 歸約用M VbA 歸約接受19 文法GS及其LR分析表如下,請給出對輸入串da;aoa#的分析過程。GS: 0) SS1) SdSoS2) S dS3) S S;S 4) S a nameACTIONGOTOda;a#S0S2S3 S3 11  S4 acc 2S2  S3 53 r4r4 r4 4S2  S3 65 S7S4 r2 6 r3r3

31、60;r3 7S2  S3 88 r1S4 r1 答:輸入串da;aoa#的分析過程如下表:步驟狀態棧文法符號棧剩余輸入符號動作123456789101112 002023025025402543025460250257025730257801#d#da#dS#dS;#dS;a#dS;S#dS#dSo#dSoa#dSoS#Sda;aoa#a;aoa#;aoa#;aoa#aoa#oa #oa #oa #a #移進移進用S a 歸約移進移進用S a 歸約用S S;S 歸約移進移進用S a 歸約用SdSoS 歸約接受20 文法GM

32、及其LR分析表如下,請給出對串dada#的分析過程。GM: 1) S VdB2) V e3) V 4) B a 5) B Bda6) B 狀態ACTIONGOTOdea#SBV0r3 S3  1 21   acc   2S4      3r2      4r6 S5r6 6 5r4  r4   6S7

33、0; r1   7  S8    8r5  r5   答:對串dada#的分析過程如下表步驟狀態棧文法符號棧剩余輸入符號動作1234567890020240245024602467024678024601#V#Vd#Vda#VdB#VdBd#VdBda#VdB#Sdada#dada#ada#da#da#a#用V 歸約移進移進用B a歸約移進移進用B Bda 歸約用S VdB 歸約接受21 文法GE為: EE+T|T TT*F|F F(E)|i試給

34、出句型(E+F)*i的短語,簡單(直接)短語,句柄和最左素短語。答:短語有: (E+F)*i ,(E+F) ,E+F ,F ,i 簡單(直接)短語有:F ,i 句柄是:F最左素短語是:E+F22 文法GS為:SV VT | ViT TF| T+FF)V* |( 試給出句型ViFi( 的短語,簡單(直接)短語,句柄和最左素短語。答:短語有: ViFi( ,ViF , F ,(簡單(直接)短語有: F ,( 句柄是: F 最左素短語是: ViF23 文法GS為:SSdT | TTT<G | GG(S) | a試給出句型(SdG)<a的短語、簡單(直接)短語、句柄和最左素短語。答:句型(

35、SdG)<a的短語:(SdG)<a 、(SdG) 、SdG 、G 、a簡單(直接)短語:G 、a句柄:G最左素短語:SdG24 按指定類型給出下列語言的文法。(1) L1= anbm c| n0,m>0 用正規文法。(2) L2= a0n1n bdm | n>0,m>0 用二型文法。 答:(1) 描述L1語言的正規文法如下: S aS|AA bA|bB B c(2) 描述L2語言的二型文法如下:S AB A aT T 0T1|01 B bD D dD|d 25 下列語言或文法確切屬于按喬姆斯基(Chomsky)分類的哪種類型,請填在( )內。(1) L1= a0n1nbdm | n>0,m >0 ( ) (2) L2= anbncnbm | n0,m>0 ( ) (3) L3= anbmc| n0,m>0 ( ) (4) GA:A

溫馨提示

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

評論

0/150

提交評論