一、 (10 分 ) 對於文法 g[s] :
s → 1a | 0b | ε
a → 0s | 1aa
b → 1s | 0bb
⑴ (3 分 ) 請寫出三個關於 g[s] 的句子;
⑵ (4 分 ) 符號串 11a0s 是否為 g [s] 的句型?試證明你的結論。
⑶ (3 分 ) 試畫出 001b 關於 g [s] 的語法樹。
二、 (10 分 ) 請構造乙個文法,使其產生這樣的表示式 e :表示式中只含有雙目運算子 + 、 * ,且 + 的優先順序高於 * , + 採用右結合, * 採用左結合,運算物件只有識別符號 i ,可以用括號改變運算子優先順序。要求給出該文法的形式化描述。
三、 (20 分 ) 設有語言 l0,1} + ,且α不以 0 開頭,但以 00 結尾 } 。
⑴ (5 分 ) 試寫出描述 l 的正規表示式;
⑵ (15 分 ) 構造識別 l 的 dfa (要求給出詳細過程,並畫出構造過程中的 ndfa 、 dfa 的狀態轉換圖,以及 dfa 的形式化描述 ) 。
四、 (25 分 ) 給定文法 g[s] :
s → ab
a → ab | bs | c
b → as | d
⑴ (6 分 ) 請給出每乙個產生式右部的 first 集;
⑵ (3 分 ) 請給出每乙個非終結符號的 follow 集;
⑶ (8 分 ) 請構造該文法的 ll(1) 分析表;
⑷ (8 分 ) 什麼是 ll(1) 文法?該文法是 ll(1) 文法嗎?為什麼?
五、 (20 分 ) 給定文法 g[s] :
s → saa|a
a → abs|b
⑴ (8 分 ) 請構造該文法的以 lr(0) 專案集為狀態的識別規範句型活字首的 dfa 。
⑵ (4 分 ) 請構造該文法的 lr(0) 分析表。
⑶ (4 分 ) 什麼是 lr(0) 文法?該文法是 lr(0) 文法嗎?為什麼?
⑷ (4 分 ) 什麼是 slr(1) 文法?該文法是 slr(1) 文法嗎?為什麼?
六、 (10) 給定下列語句:
if a+b>c
then x := a*(b-c) + (b*c-d)/e
⑴ (5 分 ) 寫出其等價的逆波蘭表示;
⑵ (5 分 ) 寫出其等價的四元式序列。
七、 (5 分 ) 已知下列 c 語言程式:
int * f()
main()
程式執行結果為: the result is 26157,
請解釋為什麼程式執行的結果不是期望的「 the result is 100 」?
編譯原理實驗考試題
請設計以下t語言的詞法和語法語義分析程式 t語言的詞法規則如下 0 1 單分界符 雙分界符 t語言的語法語義規則如下 1 2 3 4 logic stat factor factor and 5 factor num i loadi i主函式設計 將t語言程式儲存在一txt檔案中作為輸入,詞法分析的...
c語言考試經典試題
一 填空題 1 字串 x y 12 n 的字元數為 2 已知float x 2.5,y 4.7 int a 7 表示式x a 3 int x y 2 4的運算結果為 3 程式段int x 10 while x cout 4 函式呼叫語句fun a1,a2,a3,a4 中的引數個數是為 5 在int ...
實數經典試題
1.下列各組數中互為相反數的是 與 與 與 與2 2 下列說法正確的是 a.0沒有立方根 b.乙個數的立方根一定比這個數小 c.乙個數的立方根有兩個 d.乙個非零的數的立方根,仍然是乙個非零的數 3 立方根等於它本身的數有 a 1,0,1 b 0,1 c 0 d 1 4.當x 時,有意義。5.已知,...