編譯原理小題答案_第1頁
編譯原理小題答案_第2頁
編譯原理小題答案_第3頁
編譯原理小題答案_第4頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.編譯原理常見題型一、填空題1.編譯程序的工作過程一般可以劃分為詞法分析,語法分析, 中間代碼生成, 代碼優(yōu)化 (可省 ), 目標代碼生成等幾個基本階段。2.若源程序是用高級語言編寫的,目標程序是機器語言程序或匯編程序,則其翻譯程序稱為編譯程序 .3.編譯方式與解釋方式的根本區(qū)別在于是否生成目標代碼.5.對編譯程序而言,輸入數(shù)據(jù)是源程序,輸出結果是目標程序.7.若源程序是用高級語言編寫的,目標程序是機器語言程序或匯編程序,則其翻譯程序稱為 編譯程序。8. 一個典型的編譯程序中,不僅包括詞法分析、語法分析、中間代碼生成、代碼優(yōu)化、目標代碼生成等五個部分,還應包括表格處理和 出錯處理。其中,詞法分

2、析器用于識別 單詞。10.一個上下文無關文法所含四個組成部分是一組終結符號、一組非終結符號、一個開始符號、 一組產(chǎn)生式。12.產(chǎn)生式是用于定義語法成分的一種書寫規(guī)則。13.設 GS 是給定文法,則由文法G 所定義的語言 L(G) 可描述為:L(G) x S=>*x,x VT*。*14.設 G 是一個給定的文法,S 是文法的開始符號,如果Sx(其中 xV * ),則稱 x 是文法的一個句型。*15.設 G 是一個給定的文法,S 是文法的開始符號,如果Sx( 其中 x VT * ),則稱 x 是文法的一個句子。16.掃描器的任務是從源程序中識別出一個個單詞符號。17.語法分析最常用的兩類方法

3、是自上而下和 自下而上分析法。18.語法分析的任務是識別給定的終結符串是否為給定文法的句子。19.遞歸下降法不允許任一非終結符是直接左遞歸的。20.自頂向下的語法分析方法的關鍵是如何選擇候選式的問題。21.遞歸下降分析法是自頂向下分析方法。22.自頂向下的語法分析方法的基本思想是:從文法的開始符號開始,根據(jù)給定的輸入串并按照文法的產(chǎn)生式一步一步的向下進行直接推導,試圖推導出文法的句子,使之與給定的輸入串匹配。23. 自底向上的語法分析方法的基本思想是:從給定的終結符串開始,根據(jù)文法的規(guī)則一步一步的向上進行直接歸約,試圖歸約到文法的開始符號。24. 自底向上的語法分析方法的基本思想是:從輸入串入

4、手,利用文法的產(chǎn)生式一步一步地向上進行直接歸約,力求 歸約到文法的開始符號。26.在 LR( 0)分析法的名稱中, L 的含義是自左向右的掃描輸入串,R 的含義是最左歸約, 0 的含義是 向貌似句柄的符號串后查看0 個輸入符號。31.終結符只有綜合屬性,它們由詞法分析器提供。1/12.32. 在使用高級語言編程時,首先可通過編譯程序發(fā)現(xiàn)源程序的全部A(語法)錯誤和B(語義)部分錯誤 .34一個句型中的最左簡單短語稱為該句型的_句柄 _。36從功能上說,程序語言的語句大體可分為_執(zhí)行性 _語句和 說明性 _語句兩大類。37語法分析是依據(jù)語言的_語法 _規(guī)則進行的,中間代碼產(chǎn)生是依據(jù)語言的_語義

5、_規(guī)進行的。38語法分析器的輸入是_單詞符號 _,其輸出是 _語法單位 _。40逆波蘭式ab+c+ d*e-所表達的表達式為_(a+b+c)*d-c_ _ 。41計算機執(zhí)行用高級語言編寫的程序主要有兩種途徑:_解釋 _和 _編譯 _。42自上而下分析法采用_移進 _、歸約、錯誤處理、接受 _等四種操作。43一個 LR 分析器包括兩部分:一個總控程序和_一張分析表 _。44后綴式abc-/ 所代表的表達式是a/(b-c)_。46語法分析基于 _上下文無關 _文法進行, 即識別的是該類文法的句子。語法分析的有效工具是 _語法樹 _。48語義分析階段所生成的與源程序等價的中間表示形式可以有_逆波蘭

6、_、四元式表示 _與 _三元式表示 _等。51. 自頂向下語法分析會遇到的主要問題有左遞歸和 回溯。52. 已知文法GE : E T|E+T; T F|T*F;F (E)|i該文法的開始符號是,終結符號集合 VT 是,非終結符號結合VN是。2/12.二、單選題1一個編譯程序中,不僅包含詞法分析, ( A) ,中間代碼生成,代碼優(yōu)化,目標代碼生成等五個部分。A 語法分析B文法分析C語言分析D解釋分析2語法分析器則可以發(fā)現(xiàn)源程序中的(D )。A 語義錯誤B語法和語義錯誤C錯誤并校正D語法錯誤3解釋程序處理語言時, 大多數(shù)采用的是(B )B 方法。A 源程序命令被逐個直接解釋執(zhí)行B 先將源程序轉(zhuǎn)化為

7、中間代碼, 再解釋執(zhí)行C先將源程序解釋轉(zhuǎn)化為目標程序, 再執(zhí)行D 以上方法都可以4編譯程序是一種(B) 。A 匯編程序B翻譯程序C解釋程序D目標程序5通常一個編譯程序中,不僅包含詞法分析,語法分析,中間代碼生成,代碼優(yōu)化,目標代碼生成等五個部分,還應包括 (C)。A 模擬執(zhí)行器B 解釋器C表格處理和出錯處理D 符號執(zhí)行器6一個句型中的最左( B)稱為該句型的句柄。A 短語B 簡單短語C素短語D 終結符號7文法GE:ET E TTF TFFa(E)該文法句型E F (E T)的簡單短語是下列符號串中的(B)。 ( ET) ETF F (ET)A和B和C和D8詞法分析器用于識別(C)。A 句子B

8、句型C單詞D產(chǎn)生式9在自底向上的語法分析方法中,分析的關鍵是(D )。A 尋找句柄B尋找句型C消除遞歸D 選擇候選式10文法G 產(chǎn)生的 ( D )的全體是該文法描述的語言。A 句型B 終結符集C非終結符集D 句子11若文法G 定義的語言是無限集,則文法必然是(A) 。A 遞歸的B前后文無關的C二義性的D 無二義性的12四種形式語言文法中,1 型文法又稱為 (C)C 文法。A 短語結構文法B前后文無關文法C前后文有關文法D正規(guī)文法13一個文法所描述的語言是(A)。A 唯一的B不唯一的C可能唯一,好可能不唯一D都不對14 (B )和代碼優(yōu)化部分不是每個編譯程序都必需的。A 語法分析B中間代碼生成C

9、詞法分析D 目標代碼生成15 (B )是兩類程序語言處理程序。A 高級語言程序和低級語言程序B解釋程序和編譯程序3/12.C編譯程序和操作系統(tǒng)D系統(tǒng)程序和應用程序16. 一個上下文無關文法 G 包括四個組成部分,它們是:一組非終結符號,一組終結符號,一個開始符號,以及一組 (D)。A 句子B句型C單詞D產(chǎn)生式17 文法分為四種類型,即0 型、 1 型、 2 型、 3 型。其中2 型文法是 (D )。A 短語文法B正則文法C上下文有關文法D上下文無關文法18文法G 所描述的語言是(C)的集合。A 文法 G 的字母表V 中所有符號組成的符號串B 文法G 的字母表V 的閉包V*中的所有符號串C由文法

10、的開始符號推出的所有終結符串D 由文法的開始符號推出的所有符號串19文法分為四種類型,即0 型、 1 型、 2 型、 3 型。其中0 型文法是 (A )。A 短語文法B正則文法C上下文有關文法D 上下文無關文法20 (A 是一種典型的解釋型語言。A BASICB CC FORTRAND PASCAL21與編譯系統(tǒng)相比,解釋系統(tǒng)(D )。A 比較簡單, 可移植性好, 執(zhí)行速度快B 比較復雜, 可移植性好, 執(zhí)行速度快C比較簡單, 可移植性差, 執(zhí)行速度慢D 比較簡單, 可移植性好, 執(zhí)行速度慢22用高級語言編寫的程序經(jīng)編譯后產(chǎn)生的程序叫(B)。A 源程序B 目標程序C連接程序D解釋程序23編寫一

11、個計算機高級語言的源程序后,到正式上機運行之前,一般要經(jīng)過(B) 這幾步 :(1) 編輯(2) 編譯(3) 連接(4) 運行A (1)(2)(3)(4)B (1)(2)(3)C (1)(3)D (1)(4)24把匯編語言程序翻譯成機器可執(zhí)行的目標程序的工作是由(B)完成的。A 編譯器B 匯編器C解釋器D 預處理器25詞法分析器的輸出結果是(C)。A 單詞的種別編碼B 單詞在符號表中的位置C單詞的種別編碼和自身值D 單詞自身值26 正規(guī)式 M 1 和 M 2 等價是指 (C)。A M1 和 M2 的狀態(tài)數(shù)相等B M1 和 M2 的有向邊條數(shù)相等C M1 和 M2 所識別的語言集相等D M1 和

12、M2 狀態(tài)數(shù)和有向邊條數(shù)相等27 文法 G: S xSx|y 所識別的語言是(C)。A xyxB (xyx)*C x n yxn (n0)D x*yx*28如果文法G 是無二義的,則它的任何句子 (A )。A 最左推導和最右推導對應的語法樹必定相同B 最左推導和最右推導對應的語法樹可能不同C最左推導和最右推導必定相同D 可能存在兩個不同的最左推導,但它們對應的語法樹相同29構造編譯程序應掌握(D )。A 源程序B 目標語言C編譯方法D以上三項都是30四元式之間的聯(lián)系是通過(B)實現(xiàn)的。A 指示器B臨時變量C符號表D 程序變量31表達式 ( A B) (C D) 的逆波蘭表示為(B )。4/12

13、.A AB CD B AB CD CAB CDD AB CD 33 編譯程序是對(D)。A 匯編程序的翻譯B高級語言程序的解釋執(zhí)行C機器語言的執(zhí)行D 高級語言的翻譯34 采用自上而下分析,必須(C)。A 消除左遞歸B消除右遞歸C消除回溯D 提取公共左因子35在規(guī)范歸約中,用() B 來刻畫可歸約串。A 直接短語B句柄C最左素短語D 素短語36間接三元式表示法的優(yōu)點為(A )。A 采用間接碼表,便于優(yōu)化處理B節(jié)省存儲空間,不便于表的修改C便于優(yōu)化處理,節(jié)省存儲空間D節(jié)省存儲空間,不便于優(yōu)化處理37在目標代碼生成階段,符號表用(D)。A 目標代碼生成B 語義檢查C語法檢查D地址分配38下面關于解釋

14、程序的描述正確的是B.(1) 解釋程序的特點是處理程序時不產(chǎn)生目標代碼(2) 解釋程序適用于 COBOL 和 FORTRAN 語言(3) 解釋程序是為打開編譯程序技術的僵局而開發(fā)的A. (1)(2)B. (1)C. (1)(2)(3)D.(2)(3)39. 解釋程序處理語言時,大多數(shù)采用的是B方法 .A. 源程序命令被逐個直接解釋執(zhí)行B. 先將源程序轉(zhuǎn)化為中間代碼,再解釋執(zhí)行C.先將源程序解釋轉(zhuǎn)化為目標程序,在執(zhí)行D. 以上方法都可以40. 用不同語言編寫的程序產(chǎn)生后,可用連接在一起生成機器可執(zhí)行的程序.在機器中真正執(zhí)行的是. 上面三空格對應的選項是:Aa. 源程序b. 目標程序c. 函數(shù)d.

15、 過程e. 機器指令代碼f. 模塊g. 連接程序h.程序庫A. b 、 g、 eB. b、 c、 eC. e、g、 fD. e、 c、f41. 由于受到具體機器主存容量的限制,編譯程序幾個不同階段的工作往往被組合成,諸階段的工作往往是進行的 . 上面兩空格對應的選項是:Aa. 過程b. 程序c. 批量d.遍e. 順序f. 并行g. 成批h.穿插A. d 和 hB. d 和 eC. a 和 hD. a 和 e42. 編譯過程中,語法分析器的任務就是B.(1)分析單詞是怎樣構成的(2) 分析單詞串是如何構成語句和說明的(3)分析語句和說明是如何構成程序的(4) 分析程序的結構A. (2)(3)B.

16、 (2)(3)(4)C. (1)(2)(3)D.(1)(2)(3)(4)43. 編譯程序必須完成的工作有A.(1) 詞法分析(2) 語法分析(3) 語義分析(4) 代碼生成(5) 中間代碼生成(6) 代碼優(yōu)化A. (1)(2)(3)(4)B. (1)(2)(3)(4)(5)C. (1)(2)(3)(4)(5)(6)D. (1)(2)(3)(4)(6)44按邏輯上劃分,編譯程序第二步工作是C 。A. 語義分析B. 詞法分析C. 語法分析D. 代碼優(yōu)化5/12.45已知語言 L= x nyy n | n>=1 ,則下述文法中, D可以產(chǎn)生語言 L。A1.Z xZy|xAy|yB1.A xAy

17、2. A xAy|x2.A xC1.Z AyBD1.Z xAy2.A xA|x2.A xAy|y3.B yB|y46喬姆斯基( Chomsky )把文法分為四種類型,即0 型、 1 型、 2 型、 3 型。其中3 型文法是B。A. 短語文法B.正則文法C.上下文有關文法D. 上下文無關文法48設 G 是一個給定的文法,S 是文法的開始符號,如果Sx(其中 x V * ) ,則稱 x 是文法G的一個B。A. 候選式B. 句型C. 單詞D. 產(chǎn)生式49若一個文法是遞歸的,則它所產(chǎn)生的語言的句子A。A. 是無窮多個B.是有窮多個C.是可枚舉的D.個數(shù)是常量50文法的二義性和語言的二義性是兩個A的概念

18、。A不同B相同C無法判斷D不存在51. 在語法分析處理中,F(xiàn)IRST 集合、 FOLLOW集合、 SELECT 集合均是B。A. 非終結符集B. 終結符集C. 字母表D. 狀態(tài)集52. 編譯程序中語法分析器接收以A為單位的輸入。A. 單詞B. 表達式C. 產(chǎn)生式D. 句子53.在 LR 分析法中,分析棧中存放的狀態(tài)是識別規(guī)范句型C的 DFA 狀態(tài)。A. 句柄B. 前綴C. 活前綴D. LR(0) 項目6/12.三、是非題(下列各題,你認為正確的,請在題干的括號內(nèi)打“”,錯的打 “×”。)1計算機高級語言翻譯成低級語言只有解釋一種方式。( X )2在編譯中進行語法檢查的目的是為了發(fā)現(xiàn)程

19、序中所有錯誤。( X )3甲機上的某編譯程序在乙機上能直接使用的必要條件是甲機和乙機的操作系統(tǒng)功能完全相同。(X )4 “用高級語言書寫的源程序都必須通過編譯,產(chǎn)生目標代碼后才能投入運行 ”這種說法。(X )5正則文法其產(chǎn)生式為A a,ABb , A ,B V N ,a、 b V T。( V )6產(chǎn)生式是用于定義詞法成分的一種書寫規(guī)則。(X)7解釋程序適用于COBOL 和 FORTRAN語言。(X)8正規(guī)文法產(chǎn)生的語言都可以用上下文無關文法來描述。(V)9如果一個文法存在某個句子對應兩棵不同的語法樹,則稱這個文法是二義的。(V)10編譯程序是對高級語言程序的解釋執(zhí)行。(X)11一個有限狀態(tài)自動

20、機中,有且僅有一個唯一的終態(tài)。(X)12語法分析時必須先消除文法中的左遞歸。(X)13兩個正規(guī)集相等的必要條件是他們對應的正規(guī)式等價。(V )14設 r 和 s 分別是正規(guī)式,則有L(r|s)=L(r)L(s) 。(X)15確定的自動機以及不確定的自動機都能正確地識別正規(guī)集。(V)16詞法分析作為單獨的一遍來處理較好。(X)17構造 LR 分析器的任務就是產(chǎn)生LR 分析表。(V)18編譯程序與具體的機器有關,與具體的語言無關。(X)19每個文法都能改寫為LL(1) 文法。( X )20遞歸下降法允許任一非終結符是直接左遞歸的。( V )21遞歸下降分析法是自頂向下分析方法。(V)22一個 LL

21、(l) 文法一定是無二義的。(V)23算符優(yōu)先關系表不一定存在對應的優(yōu)先函數(shù)。( X )24自底而上語法分析方法的主要問題是候選式的選擇。( X )25 LR 分析方法是自頂向下語法分析方法。(X )26簡單優(yōu)先文法允許任意兩個產(chǎn)生式具有相同右部。( X )27若一個句型中出現(xiàn)了某產(chǎn)生式的右部,則此右部一定是該句型的句柄。(X )28一個句型的句柄一定是文法某產(chǎn)生式的右部。( V )29在 SLR(1) 分析法的名稱中, S 的含義是簡單的。(V)30綜合屬性是用于“ 自上而下” 傳遞信息。(X)31一個算符優(yōu)先文法可能不存在算符優(yōu)先函數(shù)與之對應。(V)32 LR 分析法在自左至右掃描輸入串時

22、就能發(fā)現(xiàn)錯誤,但不能準確地指出出錯地點。(V)33規(guī)范歸約和規(guī)范推導是互逆的兩個過程。(V)34 LR 分析技術無法適用二義文法。(X)35逆波蘭表示法表示表達式時無須使用括號。(V)36逆波蘭法表示的表達式亦稱后綴式。(V)38在程序中標識符的出現(xiàn)僅為使用性的。( X )7/12.39. 設為 a ,b ,則 a, ba, , 都是上的正規(guī)式。 (X)40.對于上下文無關文法 GS ,若 SAB則 A 一定是一條產(chǎn)生式規(guī)則,其中 , , ( VT VN) * 。( X)41.對于逆波蘭后綴式,無論從哪頭開始分析均可得到唯一正確的分解。(V)42.LR( 0)分析法是一種規(guī)范歸約法。( V)4

23、3.算符優(yōu)先分析法只能用來分析算符優(yōu)先文法。( V)44.解釋程序和編譯程序一樣,生成目標代碼。( X)45.編譯程序生成的目標代碼只能是機器語言。( X)46.等價文法是指兩個文法完全相同。( X)47. 對于字母表 上的任一 NFA M',必存在 上與 NFA M' 等價的 DFA M。( V)48. 每個文法都能改寫為 LL(1) 文法。 ( X)49. 不存在正規(guī)文法能產(chǎn)生語言: L=a nbn|n>=1 ( V)8/12.四、簡答題1、什么是句子?什么是語言 ?答:設 G 是一個給定的文法,S 是文法的開始符號,如果S=>*x (其中 x Vt* ),則稱

24、 x 是文法的一個句子。設 GS 是給定文法,則由文法G 所定義的語言L(G) 可描述為L(G) x S=>*x,x VT*2、已知文法GE 為:E T|E+T|E -TT F|T*F|T/FF ( E) |i 該文法的開始符號(識別符號)是什么?請給出該文法的終結符號集合V T 和非終結符號集合V N。 找出句型T+T*F+i的所有短語、簡單短語和句柄。答:該文法的開始符號(識別符號)是E。該文法的終結符號集合VT=+ 、 -、 * 、 /、(、)、 i 。非終結符號集合VN=E 、 T、 F 。句型 T+T*F+I 的句柄為第一個T。3、已知文法GS 為:S dABA aA|aB Bb| GS 產(chǎn)生的語言是什么? GS 能否改寫為等價的正規(guī)文法?答: GS 產(chǎn)生的語言是L(GS)=danbm n 1,m 0 。 GS 能改寫為等價的正規(guī)文法 ,其改寫后的等價的正規(guī)文法 GS 為:S dAA aA|aB|a B bB|b5、證明下面文法GN 是二義性文法。GN : N SEES SDDE 0 2 10 D 0 129/12.7、簡述 DFA 與 NFA 有何區(qū)別?答:主要區(qū)別在于,1.DFA 沒有轉(zhuǎn)換; 2.DFA 的狀態(tài)轉(zhuǎn)換函數(shù)是單值映射,即當前狀態(tài)輸入一個字符后轉(zhuǎn)換到下一個狀態(tài),而NFA 的狀態(tài)轉(zhuǎn)換函數(shù)是非單值映射,也就是說當前狀態(tài)輸入一個字符

溫馨提示

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

評論

0/150

提交評論