2009-08-25 78 views
0

我正在做正式的方法,其中一個項目是使用java創建一個有限的機器解釋器。它需要從文本文件中讀取NFA,然後從NFA轉換爲DFA。它還需要將DFA輸出到文本文件。然後它會遍歷符號輸入並處理DFA,以顯示接受還是拒絕的結果。有限機器翻譯

我沒有太多的編碼問題,但與設計。我的意思是要得到一個很好的實現它的順利方式。我應該開始什麼?我應該有什麼課程?

回答

1

設計應用程序的一種方法是查看問題並用英文描述解決方案。描述每一步,包括您在此過程中注意到的任何假設。每個段落可能應該是一個不同的方法。做類似工作的方法應該是類。

那麼,你能否更新你的答案,以段落形式口頭描述你的程序需要做什麼?

呵呵,只是爲了提供一點提示:當您以段落形式描述NFA/DFA時,請嘗試描述它,就好像您要繪製圖片一樣(您可以用某種東西替換「繪畫」 ,在實際應用中,但它現在可以是一個很好的佔位符)

0

我會根據Stream類的工作原理設計。您可以擁有NFA輸入流和DFA輸出流。然後一個轉換器類可以使用每個的一個實例。

1

您可能會重新編寫用於創建我的「編碼器」。

我設計了一個有限狀態表(用代碼表示),但是我很好地抽象瞭解析器,你可以重寫那個部分,其餘的類應該工作得很好。

http://code.google.com/p/state-machine/