自上而下(top down)和自下而上分析(bottom up parsing)的區別

top-down和bottom-up解析的關鍵區別在於,top-down解析執行從起始符號到輸入字串的解析,而bottom-down解析執行從輸入字串到起始符號的解析。此外,自頂向下和自底向上解析的另一個重要區別是,自頂向下的解析使用最左邊的派生,而自下而上的解析使用最右邊的派生。...

top-down和bottom-up解析的關鍵區別在於,top-down解析執行從起始符號到輸入字符串的解析,而bottom-down解析執行從輸入字符串到起始符號的解析。此外,自頂向下和自底向上解析的另一個重要區別是,自頂向下的解析使用最左邊的派生,而自下而上的解析使用最右邊的派生。

高級語言有助於編寫計算機程序。程序員更容易理解它們,但計算機不容易理解。因此,將程序轉換為高級程序。編譯器的任務是將人類可讀的源代碼轉換為機器可讀的機器代碼。一個程序要經過幾個步驟才能轉換成機器碼。整個過程稱為語言處理系統。其中之一是彙編。語法分析器或解析器在編譯器中,它執行解析任務。

目錄

1. 概述和主要區別
2. 什麼是自頂向下的解析
3. 什麼是自下而上的解析
4. 並排比較-表格形式的自頂向下與自下而上分析
5. 摘要

什麼是自頂向下分析(top down parsing)?

每種編程語言都有一組表示語言的規則。語法分析器或語法分析器獲取輸入字符串,並根據語法結果檢查它是否正確。換句話說,語法應該使用解析樹生成該字符串。

在自頂向下的解析中,解析從起始符號開始,並將到達給定的輸入字符串。考慮以下語法產生式規則。輸入字符串(w)為cad。

S->cAd

A->ab/A

執行自頂向下解析後的解析樹如下所示。

自上而下(top down)和自下而上分析(bottom up parsing)的區別

圖01:自頂向下的解析樹1

S產生c A d,A產生b。弦是cabd。它不是必需的字符串。因此,有必要進行回溯,即使用其他替代方法。

類似地,S產生c A d。對A應用另一個選項將得到A。現在它給出了所需的字符串。因此,解析器接受這個輸入字符串。執行自頂向下解析後的解析樹如下所示。

自上而下(top down)和自下而上分析(bottom up parsing)的區別

圖02:自頂向下的解析樹2

當輸入字符串(w)為abcde時

考慮以下語法產生式規則。

S->aABe公司

A->Abc/b

B->d

在自頂向下的分析中,

S->aABe(代替A->Abc)

S->aAbcBe(替換A->b)

S->Abcbe(代替B->d)

聖母院

替換首先從最左邊的變量開始,然後到下一個右邊的位置,依此類推。因此,它遵循最左邊的求導方法。此外,當存在變量時,決定選擇什麼樣的產生式規則是很重要的。

什麼是自下而上分析(bottom up parsing)?

在自下而上中,解析是以另一種方式進行的。解析從輸入字符串到起始符號。考慮以下語法產生式規則,並讓輸入字符串為wɛcad

S->cAd

A->ab/A

執行自底向上解析後的解析樹如下所示。

自上而下(top down)和自下而上分析(bottom up parsing)的區別

圖03:自下而上解析的解析樹

給定的字符串是cad。a由a生成。c、a和d組合得到起始符號S。

當輸入字符串(w)為abcde時

考慮以下語法產生式規則。

S->aABe公司

A->Abc/b

B->d

在自下而上的分析中,

S->aABe(代替B->d)

S->aAde(替換A->Abc)

S->aAbcde(子例程A->b)

聖母院

替換首先從最右邊的變量開始,然後移到下一個左邊的位置,依此類推。因此,它遵循左mot求導方法。

自上而下(top down)和自下而上分析(bottom up parsing)的區別

自頂向下解析是一種解析策略,它首先查看解析樹的最高級別,然後使用形式語法的規則沿著解析樹向下展開。自底向上解析是一種解析策略,它首先查看解析樹的最低層,然後使用形式語法的規則向上搜索解析樹。在自頂向下的解析中,解析從起始符號到輸入字符串。另一方面,在自下而上的解析中,解析從輸入字符串到起始符號。

此外,自頂向下分析的主要決策是選擇使用什麼產生式規則來構造字符串,而自下而上分析的主要決策是選擇何時使用產生式規則來減少字符串以獲得起始符號。此外,自頂向下的解析使用最左邊的派生,而自下而上的解析使用最右邊的派生。

自上而下(top down)和自下而上分析(bottom up parsing)的區別

總結 - 自上而下(top down) vs. 自下而上分析(bottom up parsing)

top-down和bottom-up解析的區別在於,top-down解析執行從起始符號到輸入字符串的解析,而bottom-down解析執行從輸入字符串到起始符號的解析。

引用
  • 發表於 2020-10-18 09:45
  • 閱讀 ( 54 )
  • 分類:科技

你可能感興趣的文章

行(row)和柱(column)的區別

...是一列(a column)? 柱是指垂直排列。換句話說,這是一種自上而下或自下而上的安排。列可以指單詞、數字、物件或資料的排列。然而,與row不同,我們通常不會用這個詞來形容人。例如,我們可以說是一排人,但不是一列人。...

  • 發佈於 2020-10-17 12:20
  • 閲讀 ( 48 )

歸納的(inductive)和演繹推理(deductive reasoning)的區別

...定的結論。換言之,它指的是從具體的觀察中得出概括。自下而上推理和因果推理也指歸納推理。這種推理通常基於一個人識別有意義的模式和聯絡的能力。 Figure 01: Reasoning 例如,假設你觀察到你的朋友吃海鮮時嘴脣開始腫脹...

  • 發佈於 2020-10-18 08:06
  • 閲讀 ( 609 )

一般化(generalization)和資料庫管理系統專業化(specialization in dbms)的區別

... 同義詞 泛化被稱為自下而上的方法。 專業化被稱為自上而下的方法。 主要任務 在泛化中,根據多個實體的相似特性,將多個實體組合成一個廣義實體。 在專業化中,一個實體根據其特徵被劃分為子實體。 總結 - 一般...

  • 發佈於 2020-10-19 04:33
  • 閲讀 ( 131 )

呃(er)和eer圖(eer diagram)的區別

...上到下,人的實體可以進一步專業化為學生和講師。這是自上而下的方法。人員的姓名和城市屬性屬於學生實體講師實體。Student實體有自己的Student_id屬性,而講師實體有它的講師_id。 下面是聚合的一個示例。 圖03:聚合 根據...

  • 發佈於 2020-10-19 04:37
  • 閲讀 ( 46 )

歸納的(inductive)和演繹研究(deductive research)的區別

...tive research)? 演繹研究與歸納研究大不相同,因為它使用自上而下的方法來反對歸納研究。演繹研究可以理解為一個研究範疇,包括為了驗證一個理論而檢驗假設的過程。與歸納研究不同,歸納研究透過理論的創造產生新的知識...

  • 發佈於 2020-10-23 12:38
  • 閲讀 ( 63 )

鴨鴨哥(duckduckgo)和谷歌(google)的區別

...任何考慮就去那裡。 為了處理垃圾郵件,DuckDuckGo採取了自上而下的方法以及自下而上的方法。與ParkedDomainProject合作,DuckDuckGo爬網以識別並從網站結果中消除垃圾郵件。這些域名中的大多數將在谷歌索引中可見。從自上而下的...

  • 發佈於 2020-10-24 00:33
  • 閲讀 ( 64 )

預定的(intended)和突現戰略(emergent strategies)的區別

...未來公司計劃來實施的戰略。 管理方法 預期戰略實施自上而下的管理方法。 緊急策略實施自下而上的管理方法。 靈活性 預期戰略採取僵化的管理方法,因此在很大程度上被認為不夠靈活。 應急策略因其高度的靈活性而...

  • 發佈於 2020-10-25 22:22
  • 閲讀 ( 92 )

扣鈕釦(button up)和按下按鈕(button down)的區別

...0;line-height:1;margin:0 0 16px}.entry-content ol,.entry-content ul{margin-bottom:28px;margin-left:40px}ol,ul{margin:0;padding:0}.entry-content ul > li{list-style-type:disc}table{border-collapse:collapse;border-spacing:0;line-height:1.6;margin-bottom:40px;width:100%}tbody{border-bottom:1px solid ...

  • 發佈於 2020-10-26 14:11
  • 閲讀 ( 67 )

深思熟慮(deliberate)和應急策略(emergent strategy)的區別

...戰略和緊急戰略的關鍵區別在於,深思熟慮的戰略是一種自上而下的戰略規劃方法,它強調實現預期的業務目標,而應急戰略則是從戰略執行過程中識別出不可預見的結果,然後學習如何將這些意外結果納入其中的過程透過採取...

  • 發佈於 2020-10-26 20:36
  • 閲讀 ( 49 )

實證主義(positivism)和邏輯實證主義(logical positivism)的區別

...上發展起來的一種理論,它認為所有有意義的陳述要麼是分析性的,要麼是結論性的可證實的。因此,實證主義與邏輯實證主義的主要區別在於它們的歷史和相互影響。 什麼是實證主義(positivi**)? 實證主義是一種哲學理論,認...

  • 發佈於 2020-10-28 01:16
  • 閲讀 ( 43 )