編譯原理語言轉正規表達式
『壹』 編譯原理這個正規表達式是怎麼寫出來的呀
主要就是後面的兩個條件:
至少2個1,
任何2個1之間有偶數個0
abd都不滿足第2條
『貳』 【編譯原理】構造下述文法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。
注意:以上求解的過程中「|」和「+」是等價的,都表示「或」的意思,它們的相互替換是為了描述的方便。
『叄』 編譯原理的正規表達式問題:
1 選A,*與+的區別在於*包含0
2 B
3 D ABb>Abb>abb
4 D
5 B 循環優化的三種重要技術是: 代碼外提;刪除歸納變數和強度削弱。
1 錯
2 對
『肆』 編譯原理中的正規表達式
0+表示至少有一個0
0+10表示010、0010、00010等情形
(0+10)*表示(0+10)的閉包
『伍』 編譯原理正則表達式化簡
你好,語言L={a}{a,b}∗({ϵ}∪({.,_}{a,b}{a,b}∗))L={a}{a,b}
∗
({ϵ}∪({.,_}{a,b}{a,b}
∗
))
這個語言是指,由a開頭,後接任意長度的a、b串,然後再接空串(代表結束)。或者是接以.或_開頭的,後接長度大於等於1的a、b串。
正則表達式(Regular Expression, RE)是一種用來描述正則語言的更緊湊的表示方法。
『陸』 編譯原理中的正則表達式與正規表達式有什麼區別
完全相同,是對regular expression的不同翻譯
『柒』 編譯原理與實踐中正規表達式的問題
(aa|b)*
由連續兩個a或一個b的任意序列組成的語言,比如aab,baaaabbbb.
(a|bb)*
連續兩個b或一個a的任意序列。
正則語言里,|表示任選,有時也用+號。*號表示閉包--就是說任意組合。
『捌』 編譯原理 正則語言 二義文法 急~
這個沒有一個好老師,自己咬文嚼字看懂是很累的
二義性文法
【定義】 若文法中存在這樣的句型,它具有兩棵不同的語法樹,則稱該文法是二義性文法。
二義性文法會引起歧義,應盡量避免之!
G(E):E -> E+E | E*E | (E) | i
這兩種展開
E E
E + E E * E
i E * E E + E i
i i i i
都可以表示i+i*i
所以;文法具有二義性。
『玖』 編譯原理,正則表達式的低級基礎問題
1、正則表達式:0(0|1)*1
2、由於不方便畫圖,最簡DFA用狀態表表示如下:
(1)開始狀態S------輸入0------->狀態A
(2)狀態A-------輸入0-------->狀態A
(3)狀態A-------輸入1-------->狀態B(可接受狀態)
(4)狀態B-------輸入0-------->狀態A
(5)狀態B-------輸入1-------->狀態B(可接受狀態)