導航:首頁 > 源碼編譯 > 編譯原理222答案

編譯原理222答案

發布時間:2022-11-26 23:05:50

『壹』 急求《編譯原理》答案 中國石油大學出版社

超哥說:「媽了個!沒有菊花,沒有答案。」

『貳』 求 編譯原理 蔣宗禮 姜守旭編著 課後答案

答案家論壇好像有這個答案,在大學答案的計算機欄目下面就看到了

『叄』 編譯原理及編譯程序構造課後習題答案 薛聯鳳

您好,《普通高校計算機專業精品教材系列:編譯原理及編譯程序構造(第2版)》介紹編譯理論基礎及其實現方法,強調語言的形式化定義、編譯技術的各種概念及實現過程的具體方法。介紹過程以演算法為核心,力求簡單明了地反映編譯的基礎知識。從形式語言理論角度討論詞法分析和語法分析技術,為計算機軟體工作者開發大型軟體打下良好基礎。《普通高校計算機專業精品教材系列:編譯原理及編譯程序構造(第2版)》以理論聯系實際為宗旨,內容深入淺出,重點突出,並結合構造el語言的編譯程序介紹一種常用而又簡單的編譯方法。

『肆』 求《編譯原理(第二版)》課後答案 電子工業出版社

555 555

『伍』 編譯原理求解答案

編譯原理是計算機軟體專業中的非常重要一門課程。例如:如何把我們編寫的高級語言源程序,翻譯成機器可執行的目標程序,這個就需要用到編譯原理技術。

但是學習編譯原理這門課程時,是需要頭腦中對編譯原理課程中涉及到的所有概念必須是相當清楚的,別人才能夠對你的這些問題進行准確的回答。而不是看到這些似曾親切的內容就敢於回答你的內容的。
故我個人的建議還是:你可以向專門講授編譯原理的老師請教你的問題。
以上就是我很多年前學習編譯原理的親身體會。

『陸』 編譯原理試題

習題一、單項選擇題
1、將編譯程序分成若干個「遍」是為了 。
a.提高程序的執行效率
b.使程序的結構更加清晰
c.利用有限的機器內存並提高機器的執行效率
d.利用有限的機器內存但降低了機器的執行效率
2、構造編譯程序應掌握 。
a.源程序 b.目標語言
c.編譯方法 d.以上三項都是
3、變數應當 。
a.持有左值 b.持有右值
c.既持有左值又持有右值 d.既不持有左值也不持有右值
4、編譯程序絕大多數時間花在 上。
a.出錯處理 b.詞法分析
c.目標代碼生成 d.管理表格
5、 不可能是目標代碼。
a.匯編指令代碼 b.可重定位指令代碼
c.絕對指令代碼 d.中間代碼
6、使用 可以定義一個程序的意義。
a.語義規則 b.詞法規則
c.產生規則 d.詞法規則
7、詞法分析器的輸入是 。
a.單詞符號串 b.源程序
c.語法單位 d.目標程序
8、中間代碼生成時所遵循的是- 。
a.語法規則 b.詞法規則
c.語義規則 d.等價變換規則
9、編譯程序是對 。
a.匯編程序的翻譯 b.高級語言程序的解釋執行
c.機器語言的執行 d.高級語言的翻譯
10、語法分析應遵循 。
a.語義規則 b.語法規則
c.構詞規則 d.等價變換規則
解答
1、將編譯程序分成若干個「遍」是為了使編譯程序的結構更加清晰,故選b。
2、構造編譯程序應掌握源程序、目標語言及編譯方法等三方面的知識,故選d。
3、對編譯而言,變數既持有左值又持有右值,故選c。
4、編譯程序打交道最多的就是各種表格,因此選d。
5、目標代碼包括匯編指令代碼、可重定位指令代碼和絕對指令代碼3種,因此不是目標代碼的只能選d。
6、詞法分析遵循的是構詞規則,語法分析遵循的是語法規則,中間代碼生成遵循的是語義規則,並且語義規則可以定義一個程序的意義。因此選a。
7、b 8、c 9、d 10、c
二、多項選擇題
1、編譯程序各階段的工作都涉及到 。
a.語法分析 b.表格管理 c.出錯處理
d.語義分析 e.詞法分析
2、編譯程序工作時,通常有 階段。
a.詞法分析 b.語法分析 c.中間代碼生成
d.語義檢查 e.目標代碼生成
解答
1.b、c 2. a、b、c、e
三、填空題
1、解釋程序和編譯程序的區別在於 。
2、編譯過程通常可分為5個階段,分別是 、語法分析 、代碼優化和目標代碼生成。 3、編譯程序工作過程中,第一段輸入是 ,最後階段的輸出為 程序。
4、編譯程序是指將 程序翻譯成 程序的程序。 解答
是否生成目標程序 2、詞法分析 中間代碼生成 3、源程序 目標代碼生成 4、源程序 目標語言
一、單項選擇題
1、文法G:S→xSx|y所識別的語言是 。
a. xyx b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法G描述的語言L(G)是指 。
a. L(G)={α|S+ ⇒α , α∈VT*} b. L(G)={α|S*⇒α, α∈VT*}
c. L(G)={α|S*⇒α,α∈(VT∪VN*)} d. L(G)={α|S+ ⇒α, α∈(VT∪VN*)}
3、有限狀態自動機能識別 。
a. 上下文無關文法 b. 上下文有關文法
c.正規文法 d. 短語文法
4、設G為算符優先文法,G的任意終結符對a、b有以下關系成立 。
a. 若f(a)>g(b),則a>b b.若f(a)<g(b),則a<b
c. a~b都不一定成立 d. a~b一定成立
5、如果文法G是無二義的,則它的任何句子α 。
a. 最左推導和最右推導對應的語法樹必定相同
b. 最左推導和最右推導對應的語法樹可能不同
c. 最左推導和最右推導必定相同
d. 可能存在兩個不同的最左推導,但它們對應的語法樹相同
6、由文法的開始符經0步或多步推導產生的文法符號序列是 。
a. 短語 b.句柄 c. 句型 d. 句子
7、文法G:E→E+T|T
T→T*P|P
P→(E)|I
則句型P+T+i的句柄和最左素短語為 。
a.P+T和i b. P和P+T c. i和P+T+i d.P和T
8、設文法為:S→SA|A
A→a|b
則對句子aba,下面 是規范推導。
a. SÞSAÞSAAÞAAAÞaAAÞabAÞaba
b. SÞSAÞSAAÞAAAÞAAaÞAbaÞaba
c. SÞSAÞSAAÞSAaÞSbaÞAbaÞaba
d. SÞSAÞSaÞSAaÞSbaÞAbaÞaba
9、文法G:S→b|∧(T)
T→T,S|S
則FIRSTVT(T) 。
a. {b,∧,(} b. {b,∧,)} c.{b,∧,(,,} d.{b,∧,),,}
10、產生正規語言的文法為 。
a. 0型 b. 1型 c. 2型 d. 3型
11、採用自上而下分析,必須 。
a. 消除左遞歸 b. 消除右遞歸 c. 消除回溯 d. 提取公共左因子
12、在規范歸約中,用 來刻畫可歸約串。
a. 直接短語 b. 句柄 c. 最左素短語 d. 素短語
13、有文法G:E→E*T|T
T→T+i|i
句子1+2*8+6按該文法G歸約,其值為 。
a. 23 B. 42 c. 30 d. 17
14、規范歸約指 。
a. 最左推導的逆過程 b. 最右推導的逆過程
c. 規范推導 d. 最左歸約的逆過程
[解答]
1、選c。
2、選a。
3、選c。
4、雖然a與b沒有優先關系,但構造優先函數後,a與b就一定存在優先關系了。所以,由f(a)>g)(b)或f(a)<g(b)並不能判定原來的a與b之間是否存在優先關系:故選c。
5、如果文法G無二義性,則最左推導是先生長右邊的枝葉:對於d,如果有兩個不同的是了左推導,則必然有二義性。故選a。
6、選c。
7、由圖2-8-1的語法樹和優先關系可以看出應選b。

8、規范推導是最左推導,故選d。
9、由T→T,…和T→(… 得FIRSTVT(T))={(,,)};
由T→S得FIRSTVT(S)⊂FIRSTVT(T),而FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,}; 因此選c。
10、d 11、c 12、b 13、b 14、b
二、多項選擇題
1、下面哪些說法是錯誤的 。
a. 有向圖是一個狀態轉換圖 b. 狀態轉換圖是一個有向圖
c.有向圖是一個DFA d.DFA可以用狀態轉換圖表示
2、對無二義性文法來說,一棵語法樹往往代表了 。
a. 多種推導過程 b. 多種最左推導過程 c.一種最左推導過程
d.僅一種推導過程 e.一種最左推導過程
3、如果文法G存在一個句子,滿足下列條件 之一時,則稱該文法是二義文法。
a. 該句子的最左推導與最右推導相同
b. 該句子有兩個不同的最左推導
c. 該句子有兩棵不同的最右推導
d. 該句子有兩棵不同的語法樹
e.該句子的語法樹只有一個
4、有一文法G:S→AB
A→aAb|ε
B→cBd|ε
它不產生下面 集合。
a. {anbmcndm|n,m≥0} b. {anbncmdm|n,m>0}
c. {anbmcmdn|n,m≥0} d. {anbncmdm|n,m≥0}
e. {anbncndn|n≥0}
5、自下而上的語法分析中,應從 開始分析。
a. 句型 b. 句子 c. 以單詞為單位的程序
d. 文法的開始符 e. 句柄
6、對正規文法描述的語言,以下 有能力描述它。
a.0型文法 b.1型文法 c.上下文無關文法 d.右線性文法 e.左線性文法
解答 1、e、a、c 2、a、c、e 3、b、c、d 4、a、c 5、b、c 6、a、b、c、d、e
三、填空題
1、文法中的終結符和非終結符的交集是 。詞法分析器交給語法分析器的文法符號一定是 ,它一定只出現在產生式的 部。
2、最左推導是指每次都對句型中的 非終結符進行擴展。
3、在語法分析中,最常見的兩種方法一定是 分析法,另一是 分析法。
4、採用 語法分析時,必須消除文法的左遞歸。
5、 樹代表推導過程, 樹代表歸約過程。
6、自下而上分析法採用 、歸約、錯誤處理、 等四種操作。
7、Chomsky把文法分為 種類型,編譯器構造中採用 和 文法,它們分別產生 和 語言,並分別用 和 自動機識別所產生的語言。
解答 1、空集 終結符 右
2、最左
3、自上而上 自下而上
4、自上而上
5、語法 分析
6、移進 接受
7、4 2 型 3型 上下文無關語言 正規語言 下推自動機 有限
四、判斷題
1、文法 S→aS|bR|ε描述的語言是(a|bc)* ( )
R→cS
2、在自下而上的語法分析中,語法樹與分析樹一定相同。 ( )
3、二義文法不是上下文無關文法。 ( )
4、語法分析時必須先消除文法中的左遞歸。 ( )
5、規范歸約和規范推導是互逆的兩個過程。 ( )
6、一個文法所有句型的集合形成該文法所能接受的語言。 ( )
解答 1、對 2、錯 3、錯 4、錯 5、錯 6、錯
五、簡答題
1、句柄 2、素短語 3、語法樹 4、歸約 5、推導
[解答]
1、句柄:一個句型的最左直接短語稱為該句型的句柄。
2、素短語:至少含有一個終結符的素短語,並且除它自身之外不再含任何更小的素短語。
3、語法樹:滿足下面4個條件的樹稱之為文法G[S]的一棵語法樹。
①每一終結均有一標記,此標記為VN∪VT中的一個符號;
②樹的根結點以文法G[S]的開始符S標記;
③若一結點至少有一個直接後繼,則此結點上的標記為VN中的一個符號;
④若一個以A為標記的結點有K個直接後繼,且按從左至右的順序,這些結點的標記分別為X1,X2,…,XK,則A→X1,X2,…,XK,必然是G的一個產生式。
4、歸約:我們稱αγβ直接歸約出αAβ,僅當A→γ 是一個產生式,且α、β∈(VN∪VT)*。歸約過程就是從輸入串開始,反復用產生式右部的符號替換成產生式左部符號,直至文法開始符。
5、推導:我們稱αAβ直接推出αγβ,即αAβÞαγβ,僅當A→ γ 是一個產生式,且α、β∈(VN∪VT)*。如果α1Þα2Þ…Þαn,則我們稱這個序列是從α1至α2的一個推導。若存在一個從α1αn的推導,則稱α1可推導出αn。推導是歸約的逆過程。
六、問答題
1、給出上下文無關文法的定義。
[解答]
一個上下文無關文法G是一個四元式(VT,VN,S, P),其中:
●VT是一個非空有限集,它的每個元素稱為終結符號;
●VN是一個非空有限集,它的每個元素稱為非終結符號,VT∩VN=Φ;
●S是一個非終結符號,稱為開始符號;
●P是一個產生式集合(有限),每個產生式的形式是P→α,其中,P∈VN,
α∈(VT∪VN)*。開始符號S至少必須在某個產生式的左部出現一次。
2、文法G[S]:
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc
(1)它是Chomsky哪一型文法?
(2)它生成的語言是什麼?
[解答]
(1)由於產生式左部存在終結符號,且所有產生式左部符號的長度均小於等於產生式右部的符號長度,所以文法G[S]是Chomsky1型文法,即上下文有關文法。
(2)按產生式出現的順序規定優先順序由高到低(否則無法推出句子),我們可以得到:
SÞabQÞabc
SÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbcc
SÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPPQQQÞ
aaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc
……
於是得到文法G[S]生成的語言L={anbncn|n≥1}
3、按指定類型,給出語言的文法。
L={aibj|j>i≥1}的上下文無關文法。
【解答】
(1)由L={aibj|j>i≥1}知,所求該語言對應的上下文無關文法首先應有S→aSb型產生式,以保證b的個數不少於a的個數;其次,還需有S→Sb或S→bS型的產生式,用以保證b的個數多於a的個數;也即所求上下文無關文法G[S]為:
G[S]:S→aSb|Sb|b
4、有文法G:S→aAcB|Bd
A→AaB|c
B→bScA|b
(1)試求句型aAaBcbbdcc和aAcbBdcc的句柄;
(2)寫出句子acabcbbdcc的最左推導過程。
【解答】(1)分別畫出對應兩句型的語法樹,如圖2-8-2所示
句柄:AaB Bd

圖2-8-2 語法樹
(2)句子acabcbbdcc的最左推導如下:
SÞaAcBÞaAaBcBÞacaBcBÞacabcBÞacabcbScAÞacabcbBdcA
ÞacabcbbdcAÞacabcbbdcc
5、對於文法G[S]:
S→(L)|aS|a L→L, S|S
(1)畫出句型(S,(a))的語法樹。(2)寫出上述句型的所有短語、直接短語、句柄和素短語。
【解答】
(1)句型(S,(a))的語法樹如圖2-8-3所示

(2)由圖2-8-3可知:
①短語:S、a、(a)、S,(a)、(S,(a));
②直接短語:a、S;
③句柄:S;
④素短語:素短語可由圖2-8-3中相鄰終結符之間的優先關系求得,即;

因此素短語為a。
6、考慮文法G[T]:
T→T*F|F
F→F↑P|P
P→(T)|i
證明T*P↑(T*F)是該文法的一個句型,並指出直接短語和句柄。
【解答】
首先構造T*P↑(T*F)的語法樹如圖2-8-4所示。

由圖2-8-4可知,T*P↑(T*F)是文法G[T]的一個句型。
直接短語有兩個,即P和T*F;句柄為P。

一、單項選擇題
1、詞法分析所依據的是 。
a. 語義規則 b. 構詞規則 c. 語法規則 d. 等價變換規則
2、詞法分析器的輸出結果是 。
a. 單詞的種別編碼 b. 單詞在符號表中的位置
c. 單詞的種別編碼和自身值 d. 單詞自身值
3、正規式M1和M2等價是指 。
a. M1和M2的狀態數相等 b. M1和M2的有向弧條數相等
c. M1和M2所識別的語言集相等 d. M1和M2狀態數和有向弧條數相等
4、狀態轉換圖(見圖3-6-1)接受的字集為 。

a. 以 0開頭的二進制數組成的集合 b. 以0結尾的二進制數組成的集合
c. 含奇數個0的二進制數組成的集合 d. 含偶數個0的二進制數組成的集合
5、詞法分析器作為獨立的階段使整個編譯程序結構更加簡潔、明確,因此, 。
a. 詞法分析器應作為獨立的一遍 b. 詞法分析器作為子程序較好
c. 詞法分析器分解為多個過程,由語法分析器選擇使用 d. 詞法分析器並不作為一個獨立的階段
解答 1、b 2、c 3、c 4、d 5、b
二、多項選擇題
1、在詞法分析中,能識別出 。
a. 基本字 b. 四元式 c. 運算符
d. 逆波蘭式 e. 常數
2、令∑={a,b},則∑上所有以b開頭,後跟若干個ab的字的全體對應的正規式為 。
a. b(ab)* b. b(ab)+ c.(ba)*b
d. (ba)+b e. b(a|b)
解答 1、a、c、e 2、a、b、d
三、填空題
1、確定有限自動機DFA是 的一個特例。
2、若二個正規式所表示的 相同,則認為二者是等價的。
3、一個字集是正規的,當且僅當它可由 所 。
解答 1、NFA 2、正規集 3、DFA(NFA)所識別
四、判斷題
1、一個有限狀態自動機中,有且僅有一個唯一終態。 ( )
2、設r和s分別是正規式,則有L(r|s)=L(r)|L(s)。 ( )
3、自動機M和M′的狀態數不同,則二者必不等價。 ( )
4、確定的自動機以及不確定的自動機都能正確地識別正規集。 ( )
5、對任意一個右線性文法G,都存在一個NFA M,滿足L(G)=L(M)。 ( )
6、對任意一個右線性文法G,都存在一個DFA M,滿足L(G)=L(M)。 ( )
7、對任何正規表達式e,都存在一個NFA M,滿足L(G)=L(e)。 ( )
8、對任何正規表達式e,都存在一個DFA M,滿足L(G)=L(e)。 ( )
解答 1 、2、3、錯 4、5、6、7、8、正確
五、基本題
1、設M=({x,y}, {a,b}, f,x,{y})為一非確定的有限自動機,其中f定義如下:
f(x,a)={x,y} f(x,b)={y}
f(y,a)=φ f(y,b)={x,y}
試構造相應的確定有限自動機M′。
解答:對照自動機的定義M=(S,Σ,f,S0,Z),由f的定義可知f(x,a)、f(y,b)均為多值函數,所以是一非確定有限自動機,先畫出NFA M相應的狀態圖,如圖3-6-2所示。

用子集法構造狀態轉換矩陣表3-6-3所示。
I Ia Ib
{x} {x,y} {y}
{y} — {x,y}
{x,y} {x,y} {x,y}
將轉換矩陣中的所有子集重新命名而形成表3-6-4所示的狀態轉換矩陣。
表3-6-4 狀態轉換矩陣
a b
0 2 1
1 — 2
2 2 2
即得到M′=({0,1,2}, {a,b}, f,0, {1,2}),其狀態轉換圖如圖3-6-5所示。

將圖3-6-5的DFA M′最小化。首先,將M′的狀態分成終態組{1,2}與非終態組{0};其次,考察{1,2}。由於{1,2}a={1,2}b={2}⊂{1,2},所以不再將其劃分了,也即整個劃分只有兩組{0},{1,2}:令狀態1代表{1,2},即把原來到達2的弧都導向1,並刪除狀態2。最後,得到如圖3-6-6所示化簡DFA M′。

2、對給定正規式b*(d|ad)(b|ab)+,構造其NFA M;
解答:首先用A+=AA*改造正規式得:b*(d|ad)(b|ab)(b|ab)*;其次,構造該正規式的NFA M,如圖3-6-7所示。

『柒』 求《編譯原理》第三版(西北工業大學出版社)課後題答案

答案我已發到你的郵箱
節選:
第二章
2.3
敘述由下列正規式描述的語言
a)
0(0|1)*0
b)
((ε|0)1*)*
c)
(0|1)*0(0|1)(0|1)
d)
0*10*10*10*
e)
(00|11)*((01|10)(00|11)*(01|10)(00|11)*)*
Answer:
a)
以0開始和結尾,而且長度大於等於2的0、1串
b)
所有0,1串(含空串)
c)
倒數第三位是0的0、1串
d)
僅含3個1的0、1串
e)
偶數個0和偶數個1的0、1串(含空串)

閱讀全文

與編譯原理222答案相關的資料

熱點內容
pdf顯示空白 瀏覽:449
基岩版伺服器怎麼添加常載入區域 瀏覽:651
蘋果雲服務伺服器地址 瀏覽:162
blue引擎gm命令如何修改 瀏覽:49
編程高手箴言pdf 瀏覽:702
那狗n1用的app叫什麼名字 瀏覽:336
python定義浮點數 瀏覽:604
酷安加密門禁卡 瀏覽:101
為什麼蘋果比安卓拍攝效果好 瀏覽:341
android網路中文亂碼 瀏覽:656
演算法就是程序這句話對不 瀏覽:930
數學建模蟻群演算法 瀏覽:110
雲伺服器如何選擇區域 瀏覽:374
小米標簽加密後 瀏覽:96
什麼是spdif源碼 瀏覽:55
有做軟體的源碼網站嗎 瀏覽:75
什麼app可以看韓國人化妝 瀏覽:173
做進口溯源碼的公司 瀏覽:193
安徽壓縮機安全閥哪家好 瀏覽:395
圖像對比演算法思路 瀏覽:524