當前位置:首頁 » 編程軟體 » 編譯原理文法判別題目

編譯原理文法判別題目

發布時間: 2024-07-19 19:39:42

編譯原理,求文法的問題

l1:S->aS|bX
X->bX|cY
Y->cY|ε
l2:S->MbXcY
M->aM|ε
X->bX|ε
Y->cY|ε
例:bc,abc,abbc
l3:S->MX
M->aMb|ε
X->aXb|ε
例:ab,aabbab
l4:S->1S0|X|ε
X->0X1|ε
例:100110,10,1010

② 編譯原理判斷題

1. B 正確
2. A 錯誤,不一定存在
3. B 正確
4. B 正確
5. A 錯誤,是後綴式
6. A 錯誤,只是算符文法,不一定是算符優先文法
7. B 正確
8. B 正確
9. A 錯誤,語義動作是附加在產生式上的,不是附加在非終結符上
10. A 錯誤,有些文法不能改寫為LL(1)文法
11. B 正確
12. B 正確
13. B 正確
14. B 正確
15. A 錯誤,SLR(1),LR(1)等都是沖突解決的辦法
16. B 正確
17. B 正確
18. A 錯誤,不是編譯程序工作效率高,而是生成的目標程序運行效率高
19. B 正確

③ 編譯原理題目關於判斷LL(1)文法的

A 不是,因為含有左公共引子a
B 和D不是,因為含有左遞歸
C是,因為SELECT(S→aS) 與SELECT(S→b)的交集為空,符合LL(1)文法的定義。

④ 編譯原理考試問題:已知表達式文法G(Exp)

簡單起見,用E代表Exp,用T代表Term,用F代表Factor。下面是所求屬性文法

(1)E→ E1 + T E.val:=E1.val+T.val /* 為了區別→兩側的E, →右側的E用E1表示 */

(2)E→
T E.val:=T.val

(3)T→ T1 * F T.val:=T1.val*F.val

(4)T→
F T.val:=F.val

(5)F→(E) F.val:=E.val

(6)F→num F.val:=num.val

⑤ 求解編譯原理的一道題:設有文法如下

首先要做這題你要知道判別文法類型
包括四個層次:

0-型文法(無限制文法或短語結構文法)包括所有的文法。該類型的文法能夠產生所有可被圖靈機識別的語言。可被圖靈機識別的語言是指能夠使圖靈機停機的字串,這類語言又被稱為遞歸可枚舉語言。注意遞歸可枚舉語言與遞歸語言的區別,後者是前者的一個真子集,是能夠被一個總停機的圖靈機判定的語言。
1-型文法(上下文相關文法)生成上下文相關語言。這種文法的產生式規則取如 αAβ -> αγβ 一樣的形式。這里的A 是非終結符號,而 α, β 和 γ 是包含非終結符號與終結符號的字串;α, β 可以是空串,但 γ 必須不能是空串;這種文法也可以包含規則 S->ε ,但此時文法的任何產生式規則都不能在右側包含 S 。這種文法規定的語言可以被線性有界非確定圖靈機接受。
2-型文法生成上下文無關語言。這種文法的產生式規則取如 A -> γ 一樣的形式。這里的A 是非終結符號,γ 是包含非終結符號與終結符號的字串。這種文法規定的語言可以被非確定下推自動機接受。上下文無關語言為大多數程序設計語言的語法提供了理論基礎。
3-型文法(正規文法)生成正規語言。這種文法要求產生式的左側只能包含一個非終結符號,產生式的右側只能是空串、一個終結符號或者一個非終結符號後隨一個終結符號;如果所有產生式的右側都不含初始符號 S ,規則 S -> ε 也允許出現。這種文法規定的語言可以被有限狀態自動機接受,也可以通過正則表達式來獲得。正規語言通常用來定義檢索模式或者程序設計語言中的詞法結構。
正規語言類包含於上下文無關語言類,上下文無關語言類包含於上下文相關語言類,上下文相關語言類包含於遞歸可枚舉語言類。這里的包含都是集合的真包含關系,也就是說:存在遞歸可枚舉語言不屬於上下文相關語言類,存在上下文相關語言不屬於上下文無關語言類,存在上下文無關語言不屬於正規語言類。

1)本題應該是--上下文無關文法

句子是產生式在推導時「僅僅有終結符」的任何一步
2)%mm%nn 是一個句子

由於下面一題的圖我等級不夠 不能貼圖 發你郵箱

⑥ 關於LL(1)文法的編譯原理題目

判斷是不是LL(1),首先看候選式的首字元有沒有相同的,第二判斷首字元迭代進去是否會構成左遞歸。
如果首字元不相同,也沒用左遞歸就說明此文法是LL(1)
M→MaH|H
H→(M)|b(M)|b
第一個產生式中存在左遞歸:M->MaH
第二個產生式中存在首字元相同:H->b(M) ,
H->b
怎麼改呢?
對第一個產生式,消除左遞歸就是要變成右遞歸,把右邊剩下的符號提到前面:
M->aHM'

M'->aHM'
對第二個產生式,提出公共因子
H->b( (M)|ε)
=>
H->bH'

H'->(M)|ε

⑦ 編譯原理中,形式語言里怎麼區分2型文法與3型文法

二型文法如下:
S->Ac
S->Sc
A->ab
A->aAb
三型文法如下:
S->aS
A->bA
B->cB
B->c
A->Bb
A、2型文法是上下文無關文法,表現在產生式上就是產生式的左部只有一個非終結符;3型文法從廣義上講包括左線形文法、右線形文法和正規文法 。
B、左線形文法產生式的右部要麼沒有非終結符,如果有非終結符也只能有一個,且必須位於產生式右部的最左端。
C、右線形文法產生式的右部要麼沒有非終結符,如果有非終結符也只能有一個,且必須位於產生式右部的最右端 。
D、正規文法是右線形文法的一個子集,其產生式右部只有三種情況:
1)空串
2)只有一個終結符
3)只有一個終結符後接一個非終結符
E、所有的3型文法都是2型文法。

⑧ 編譯原理 文法題目

首先擴展文法為:
1) S1->S
2) S->aS
3) S->bS
4) S->a
則:
I0 = Closure({S1->.S})={S1->.S,S->.aS,S->.bS,S->.a}
go(I0,S) = Closure({S1->S.})={S1->S.} = I1
go(I0,a) = Closure({S->a.S,S->a.})={S->a.S,S->.aS,S->.bS,S->.a,S->a.} = I2
go(I0,b) = Closure({S->b.S})={S->b.S,S->.aS,S->.bS,S->.a}=I3
go(I2,S) = closure({S->aS.})={S->aS.}=I4
go(I2,a) = Closure({S->a.S,S->a.}) = I2
go(I2,b) = Closure({S->b.S}) =I3
go(I3,S) = Closure({S->bS.}) = {S->bS.} = I5
go(I3,a) = Closure({S->a.S,S->a.}) = I2
go(I3,b) = Closure({S->b.S}) = I3

由圖所示,狀態I2,既有歸約項目(S->a.)又有移近項目(S->.aS,S->.bS,S->.a),產生沖突。當用SRL分析法時,需向前看一步,即求出:
Follow(S) = Follow(S1) = {#}
則,Follow(S)∩{a,b} =∮
故而Action(I2,a) = s2
Action(I2,b) = s3
Action(I2,#) = r4

則構造出srl分析表如下所示:
Action Goto
a b # S
I0 s2 s3 1
I1 acc
I2 s2 s3 r4 4
I3 s2 s3 5
I4 r2 r2 r2
I5 r3 r3 r3

請採納。

⑨ 【編譯原理】構造下述文法G[S]的確定有限自動機,並給出該文法的語言的正規表達式 S->Aa|ε A->Aa|Sb|a

通過聯立方程組求正規表達式:
A = Aa|Sb|a = Aa|(Aa|ε)b|a= Aa+(Aa+ε)b+a=Aa+(Aab+b)+a=Aa+Aab+b+a=A(a+ab)+(b+a)
根據方程X=Xt+r 必有X=t*r解的論斷,可得A=(a+ab)*(b+a),進而可求得:
S = Aa|ε = Aa+ε = Aa = (a+ab)*(b+a)a = (a|ab)*(b|a)a
即文法的正規表達式為: (a|ab)*(b|a)a。
注意:以上求解的過程中「|」和「+」是等價的,都表示「或」的意思,它們的相互替換是為了描述的方便。

⑩ 編譯原理中的文法設計這題該怎麼做,能給一下思路和答案嗎

文法的設計需要考慮文法的類型和表達能力。一種可能的思路是:

  • 首先,確定值為非負的5的倍數或3的李臘消倍數的數字串有什麼特徵,例如結尾只能是0或5或3或6或9,不能有前導0等。

  • 然後,選擇合適的文法類型來描述這些特徵,例如正規文法、上下文無關文法等。

  • 最後,根據文法類哪知型的規則,給出局寬產生式和開始符號。

  • 一種可能的答案是:

  • 使用正規文法來描述這個語言。

  • 產生式如下:

  • S -> 0 | 3 | 5 | 6 | 9

  • S -> A0 | A3 | A5 | A6 | A9

  • A -> S

  • A -> AA

  • 開始符號為S。

熱點內容
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:652
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:743
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:172
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:779
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513