[英]Regular expression that generates a DFA with dead or superfluous states
我正在尋找在我的詞法分析器中實現DFA最小化器的方法,但似乎無法生成看起來好像已經是表達式的最小DFA的DFA。
我正在從NFA構造DFA,而NFA是使用后綴正則表達式的thomson構造構建的。 這幾乎與龍書中所描述的完全一樣。 為了制作詞法分析器,使用從開始狀態開始的epsilon轉換將幾個NFA組合在一起。 DFA算法就是在此組合NFA上應用的。
那么,是否有任何“已知”正則表達式會生成DFA,從而為消除死角和最小化狀態提供一個很好的測試平台?
當然,我可以破解一個奇怪的DFA並在上面應用算法,但這不是一個合適的測試用例嗎? 如果這樣的話,我構建DFA的方法就不容易出現死態,那么該信息將同樣有價值,因為從那時起,我可以完全跳過實施狀態消除功能。
編輯:如果您需要實現細節才能准確回答,則代碼可在github上找到 ,尤其是NFA.cs和DFA.cs類。 此外,如果有幫助,我還會在博客文章中撰寫有關正在使用的構造算法的系列文章 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.