詞法分析 3 DFA

2021-06-15 21:51:40 字數 563 閱讀 7263

1. dfa(deterministic finite automaton)

dfa就是確定的有限自動機,因為dfa和nfa關係密切,我們經常需要把他們拿到一起來講,nfa可以轉化成為乙個dfa,dfa依然是乙個數學model,它和nfa有以下區別

不存在ε-transition,也就是說,不存在

ε為input symbol的邊

對於move函式,move : (state, symbol) -> s,具體來說就是,乙個狀態和乙個特定的input symbol,不會對映到2個不同的狀態。這樣的結果是,每個狀態,關於每個特定的input symbol,只有一條出邊

下圖就是乙個dfa:

接受語言(a|b)*ab,注意一下,接受語言(a|b)*ab的dfa我們前面見過,就是這張圖:

2. dfa的行為

我們用乙個演算法來模擬dfa的行為

s = s0;

c = nextchar();

while(c != eof)

if(s屬於f)

return "yes"

else

return "no"

詞法分析程式

上課沒聽啥,一邊看書,一邊做的。基本上,老師的要求是實現了,能把乙個句子 也可以是一整個程式,但還不完善,由於時間急,很多情況來不及考慮了 中的單詞項分析出它是保留字,還是識別符號,運算子等等。開始是在控制台下做得,也比較純正 lex.h ifndef lex h define lex h incl...

06 05 詞法分析

include include include define keywordsum 11 char scanin 300 scanout 300 用於接收輸入輸出檔名 file fin,fout 用於指向輸入輸出檔案的指標 char keyword keywordsum char singlewor...

詞法分析程式設計

實驗目的 1 理解詞法分析在編譯程式中的作用 2 加深對有窮自動機模型的理解 3 掌握詞法分析程式的實現方法和技術 實驗內容 對下述單詞表定義的語言設計編制乙個詞法分析器。各種單詞符號對應的種別碼如下表 單詞符號 種別編碼 begin1if 2then 3while4do 5end 6l l d 1...