編譯原理 作業七

2022-08-31 20:45:08 字數 1820 閱讀 7752

1.正規式轉換到正規文法

對任意正規式r選擇乙個非終結符z生成規則z→r    

1.對形如a→ab的規則,轉換成a→ab,b→b

2.將形如a→a|b的規則,轉換成a→a,a→b(a→a|b)

3.將形如a→a*b的規則,轉換成a→aa,a→b

將形如a→ba*的規則,轉換成a→aa,a→b

不斷利用上述規則進行轉換,直到每條規則最多含有乙個終結符為止.

1(0|1)*101

(a|b)*(aa|bb)(a|b)*

((0|1)*|(11))*

(0|110)

2. 自動機m=(,,f,q0,)

其中f:

(q0,0)=q1

(q1,0)=q2

(q2,0)=q3

(q0,1)=q0

(q1,1)=q0

(q2,1)=q0

(q3,0)=q3

(q3,1)=q3

畫現狀態轉換矩陣和狀態轉換圖,識別的是什麼語言。

3.由正規式r 構造 自動機nfa 

(a|b)*abb

(a|b)*(aa|bb)(a|b)*

1(1010*|1(010)*1)*0

1.(1)1(0|1)*101

s->a1

a->b0

b->c1

c->1(0|1)* ->c0|c1|1

(2)(a|b)*(aa|bb)(a|b)* 

s->(a|b)s

s->(aa|bb)(a|b)*->s(a|b)

s->(aa|bb)->aa|bb

s->as|bs|sa|sb|aa|bb

a->a

b->b

(3)((0|1)*|(11))*

s->ε|((0|1)*|(11))s

->ε|(0|1)*s|(11)s

->ε|(0|1)*s|(11)s

->ε|(0|1)s|(11)s 

->ε|0s|1s|1a

a->1s

(4)(0|11*0)*

s->ε|(0|11*0)s->ε|0s|(11*0)s

s->(11*0)s->11*0s->1a

a->1*0s->1a|0s

s->ε|0s|1a

a->1a|0s

自動機m=(,,f,q0,)

其中f:

(q0,0)=q1

(q1,0)=q2

(q2,0)=q3

(q0,1)=q0

(q1,1)=q0

(q2,1)=q0

(q3,0)=q3

(q3,1)=q3

矩陣圖:

狀態圖:

識別語言:1*0(10*)0(10(10)*0)*0(0|1)*

編譯原理作業 RE NFA DFA minDFA

題目將乙個正規表示式 regular expression 轉換成nfa,之後從nfa轉換成dfa,之後在這個dfa中找出mindfa。一 re到nfa re regular expression 為 a b aba a b 將re化成nfa的三個主要的類別是 a b 和a 和ab 二 nfa到df...

編譯原理作業五

5.3.1 下面是涉及運算子 和整數或浮點運算分量的表示式的文法。區分浮點數的方法是看它有無小數點。e e t t t num.num num 1 給出乙個 sdd 來確定每個項 t 和表示式 e 的型別 sdd 產生式語義規則 1 e e1 t if e1.type t.type then e.t...

編譯原理 作業十四

算符優先分析 1.接上個作業 p121練習1 完成4 5 兩個步驟。1 計算firstvt和 lastvt。2 找三種關係對。3 構造算符優先關係表。4 是否算符優先文法?答 是。5 給出輸入串 a,a,a 的算符優先分析過程。棧關係 輸入串動作 a,a,a 移進a,a,a 移進 a a,a 歸約 ...