編譯原理怎麼看是終態和初態
發布時間: 2024-09-15 09:24:02
『壹』 編譯原理搜索符的問題
從初態開始,(S':=.S,# ) ,初態的核心項目的搜索符為#號,這是定的,然後擴充初態,就是把所有的(S:=. αβ,# )加進去,若α為一個非終結符,假設為A,則把(A:= .γ)加進去,A:= .γ的搜索符為 FIRST(β#),就是說若β為空,則為原來S的搜索符,若β不為空,則為β的首終結符。繼續擴γ,一直到初態不能擴充為止。goto時,核心項目的搜索符是繼承過來的。
例子,若某狀態的核心項目為(A:=α.Bβ,a),則把項目(B:= .γ,FIRST(βa))加進去。
『貳』 編譯原理,如何判斷一個FA是DFA還是NFA
第一個是NFA 第二個是DFA
主要區別
1)DFA沒有輸入空串之上的轉換動作;
2)對於DFA,一個特定的符號輸入,有且只能得到一個狀態,而NFA就有可能得到一個狀態集;
『叄』 對給定的正規式b(a|b)*aa,構造其NFA M,並將其確定化。
表示方法:五元組(S,Z,f,S0,z)
S:狀態集
Z:字母表
f:映射關系
s0:初態
z:終態
(2)確定有限自動機DFA:f為單值映射
(3)非確定有限自動機NFA:f為多值映射
(4)狀態轉換圖和狀態轉換矩陣
(3)編譯原理怎麼看是終態和初態擴展閱讀
假定DFAMd=({s0,s1,s2},{a,b},f,s0,{s2}):
f:
f(s0,a)=s1f(s0,b)=s2
f(s1,a)=s1f(s1,b)=s2
f(s2,a)=s2f(s2,b)=s1
試著給出Md的狀態轉換圖和狀態轉換矩陣。
狀態轉換矩陣如下
ab
s0s1s2
s1s1s2
s2s2s1
熱點內容