1
考慮語言(Σ,R,S
)自上而下的解析器,通過創建基於自定義語言
Σ = { ′(′, ′)′ }
R = {S → SS, S → (S), S → ϵ }
,這是什麼語言的語法定義?這不僅僅是生產規則的清單,因此R?如果沒有,那麼將語法與生產規則列表區分開來呢?
2.那麼我該如何根據這個語法創建一個自頂向下的解析器?我已經看到它提到了一個堆棧。
我有一個由我的教授提供的tokenizer,但我真的不知道如何去執行代碼(C++
)。
編輯:包含現在看起來他們是無關的DFA,引用,所以這是有可能的項目描述的誤解
Re#1:IIUC你不能,有限狀態自動機不能識別平衡圓括號的語言。 – delnan
如果您被要求爲此語言編寫DFA,則可能會要求您使用抽點引理實際上反駁其在DFA等效常規語言集中的成員資格。如果您不小心引用了DFA,那麼查看遞歸(您可能還想編輯該問題)。 – digenishjkl