自 上 而 下 分 析 法

2021-10-23 09:57:41 字數 1402 閱讀 3269

非確定的自上而下分析法的思想

非確定的自上而下分析法的基本思想是,對任何輸入串 w 試圖用一切可能的辦法,從文法的開始符號出發,自上而下地為它建立一棵語法樹。或者說,為輸入串尋找乙個最左推導。如果試探成功,則 w 為相應文法的乙個句子,否則 w 就不是文法句子。這種分析過程本質上是一種窮舉試探過程,是反覆使用不同規則,謀求匹配輸入串的過程。

下面用乙個簡單例子來說明這種分析過程。

【例 4.1 】設有文法 g [ s ]:

s → aab

a → de | d

若當前的輸入串為 w = adb ,則其自上而下的分析過程是,從文法的開始符號出發,從左至右地匹配整個輸入串 w 。首先讓輸入流指標指向輸入串第乙個符號 a ,文法的開始符號 s 作

為根結點,用 s 的規則(僅一條)構造語法樹,見圖 4.1 ( a )。

此樹的最左子結點是以終結符 a 為標誌的子結點,它和輸入串第乙個符號相匹配,於是我們將輸入流指標指向下乙個輸入符號 d ,並讓第二個子結點 a 去進行匹配,非終結符 a 有兩個選擇,我們試著用它的第乙個選擇去匹配輸入串,其構造的語法樹為圖 4.1 ( b ),子樹 a 的最左子結點和第二個輸入符號相匹配,然後我們再把輸入流指標指向下乙個輸入符號 b ,並讓 a 的第二個子結點進行匹配。由於 a 的第二個子結點為終結符號 e ,與當前的輸入符號 b 不一致,因此 a 宣告失敗。這意味著 a 的第乙個選擇此刻不適用於構造 w 的語法樹。這時匹配失敗,應回溯,必須退回到出錯點,選擇 a 的其他可能的規則重新匹配.

為了實現回溯,應把 a 的第乙個選擇所構造的子樹刪去,同時把輸入指標恢復為指向第二個輸入符號 d ,重新試探用 a 的第二個選擇,構造的語法樹為圖 4.1 (c )。由於子樹 a 只有乙個子結點 d ,而且和輸入指標所指符號相一致,於是, a 完成了匹配任務。在 a 獲得匹配後,輸入指標指向下乙個輸入符號 b 。在 s 的第二個子結點 a 完成匹配後,接著輪到 s 的第三個子結點b 去進行匹配,由於 b 這個子結點和當前的輸入符號相一致,完成了為 w 構造語法樹的任務,從而證明了輸入串 w = adb 是文法 g [ s ]的乙個句子。

上述自上而下為輸入串 w 建立語法樹的過程,實際也是設法為輸入串建立乙個最左推導序列 s ⇒ aab ⇒ adb 的過程。由於要對輸入串從左向右進行掃瞄,使用最左推導才能保證按從左到右掃瞄順序匹配輸入串。根據以上分析不難看出,非確定的自上而下分析法,即帶回溯的自上而下分析法,實際上是一種窮舉的試探方法,其分析效率極低,代價很高,在實用的編譯程式中是不常用的。我們通常使用確定的自上而下分析法進行語法分析。但確定的自上而下分析法對語言的文法有一定的限制條件,那就是要求描述語言的文法是無左遞迴的和無回溯的。

杜邦分析法 漏斗分析法和矩陣關聯分析法

資料分析工作涉及到很多的分析方法,比如說杜邦分析法 漏斗分析法以及矩陣關聯分析法,這些方法都是能夠幫助我們更好地進行資料分析工作。在這篇文章中我們就給大家介紹一下關於杜邦分析法 漏斗分析法和矩陣關聯分析法的相關知識,希望能夠更好地幫助大家增長見識。1.杜邦分析法 資料分析中的杜邦分析法是由美國杜邦公...

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

設有文法 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...

基於LR分析法的簡單分析法

一 課程設計目的 通過設計 編制 除錯乙個簡單計算器程式,加深對語法及語義分析原理的理解,並實現詞法分析程式對單詞序列的詞法檢查和分析。二 課程設計內容及步驟 本次課程設計需要使用 lr 分析法完成簡單計算器的設計,其中算術表示式的文法如下 無符號整數 數字 標誌符 字母 表示式 項 項 因子 因子...