編譯原理 非確定性的自上而下分析法

2021-09-20 21:57:20 字數 1126 閱讀 4916

設有文法 g[s

]g[s]

g[s]

輸入串 w=a

dbw=adb

w=ad

b 是否為文法 g[s

]g[s]

g[s]

中的乙個句子?

(1)首先讓輸入流指標指向輸入串的第乙個符號 a

aa ,文法的開始符號 s

ss 作為根結點,用 s

ss 的規則構造語法樹,a

aa 與 s

ss 的第乙個子結點匹配。

(2)輸入流指標指向輸入串的第二個符號 d

dd ,並讓s

ss 的第二個子結點 a

aa 去匹配輸入串, a→d

ea→de

a→de

和 a→

da→d

a→d 的右部首字元均與 d

dd 匹配。選取 a→d

ea→de

a→de

, d

dd 與 a

aa 的第乙個子結點匹配。

(3)輸入流指標指向輸入串的第三個符號 b

bb,b

bb 與 a

aa 的第二個子結點不匹配,故回溯。

(4)回溯後,選取 a→d

a→da→

d, d

dd 與 a

aa 的第乙個子結點匹配。a

aa 無其它子結點,完成其匹配任務。回到 s

ss 的第三個子結點。

bb 與 s

ss 的第三個子結點匹配,匹配結束。

根據以上分析,不難看出,非確定的自上而下分析法即是帶回溯的自上而下分析法,實際上是一種窮舉的試探方法,其分析效率極低,代價很高,在實用的編譯程式中是不常用的。因此,我們通常使用確定的自上而下分析法進行語法分析。

編譯原理,自上而下非遞迴語法分析自上而下的語法分析

要求 1.使用的文法如下 見編譯陳第三版 e te e te t ft t ft f e id2.對於任意給定的輸入串 詞法記號流 進行語法分析,遞迴下降方法和非遞迴 分析方法可以任選其一來實現。3.要有一定的錯誤處理功能。即對錯誤能提示,並且能在一定程度上忽略盡量少的記號來進行接下來的分析。可以參...

數字錢包分層確定性分析

分層確定性錢包通過橢圓曲線密碼學機制,確保可以通過在沒有私鑰參與的情況下,由公鑰直接分散成子公鑰,並且分散的子公鑰可以由分散的子私鑰認證。1 確定路徑 index 依據bip44 找到對應幣種的 index,44h bip44 dh index dh account 2 依照路徑生成相應金鑰,生成流...

非確定性演算法 詳解 Flink 實時應用的確定性

確定性 determinism 是電腦科學中十分重要的特性,確定性的演算法保證對於給定相同的輸入總是產生相同的輸出。在分布式實時計算領域,確定性是業界一直難以解決的課題,由此導致用離線計算修正實時計算結果的 lambda 架構成為大資料領域過去近十年的主流架構。而在最近幾年隨著 google the...