語法分析器

語法分析器

計算機科學語言學中,語法分析:Syntactic analysis,也叫Parsing)是根據某種給定的形式文法對由單詞序列(如英語單詞序列)構成的輸入文本進行分析並確定其語法結構的一種過程。

語法分析器(Parser)通常是作為編譯器解釋器的組件出現的,它的作用是進行語法檢查、並構建由輸入的單詞組成的數據結構(一般是語法分析樹抽象語法樹等層次化的數據結構)。語法分析器通常使用一個獨立的詞法分析器從輸入字元流中分離出一個個的“單詞”,並將單詞流作為其輸入。實際開發中,語法分析器可以手工編寫,也可以使用工具(半)自動生成。

基本介紹

  • 中文名:語法分析器
  • 領域:編譯原理
  • 作用:進行語法分析
簡介,語法分析器分類,自頂向下分析,自底向上分析,關聯項目,語法分析,LALR語法分析器,

簡介

在計算機科學和語言學中,語法分析(英:Syntacticanalysis,也叫Parsing)是根據某種給定的形式文法對由單詞序列(如英語單詞序列)構成的輸入文本進行分析並確定其語法結構的一種過程。
語法分析器(Parser)通常是作為編譯器解釋器的組件出現的,它的作用是進行語法檢查、並構建由輸入的單詞組成的數據結構(一般是語法分析樹、抽象語法樹等層次化的數據結構)。語法分析器通常使用一個獨立的詞法分析器從輸入字元流中分離出一個個的“單詞”,並將單詞流作為其輸入。實際開發中,語法分析器可以手工編寫,也可以使用工具(半)自動生成。

語法分析器分類

語法分析器的任務主要是確定是否可以以及如何從語法的起始符號推導出輸入符號串(輸入文本),主要可以通過兩種方式完成:

自頂向下分析

根據形式語法規則,在語法分析樹的自頂向下展開中搜尋輸入符號串可能的最左推導。單詞按從左到右的順序依次使用。

自底向上分析

語法分析器從現有的輸入符號串開始,嘗試將其根據給定的形式語法規則進行改寫,最終改寫為語法的起始符號。

關聯項目

詞法分析再次重申

語法分析

語法分析編譯過程的核心部分,其基本任務是根據語言的語法規則進行語法分析,如果不存在語法錯誤即給出正確的語法結果,並為語義分析代碼生成做準備。

LALR語法分析器

LALR分析器是一種規範LR分析方法的簡化形式。它可以對上下無關文法進行語法分析。LALR即“Look-AheadLR”。其中,Look-Ahead為“向前看”,L代表對輸入進行從左到右的檢查,R代表反向構造出最右推導序列。 LALR分析器可以根據一種程式設計語言的正式語法的產生式而對一段文本程式輸入進行語法分析,從而在語法層面上判斷輸入程式是否合法。 實際套用中的LALR分析器並不是由人手工寫成的,而是由類似於yaccGNU Bison之類的LALR語法分析器生成工具構成。由機器自動生成的代碼相比較於程式設計師手工的代碼,擁有更好的運行效率而且減少了程式設計師的工作量。

相關詞條

熱門詞條

聯絡我們