語法分析

語法分析

語法分析是編譯過程的一個邏輯階段。語法分析的任務是在詞法分析的基礎上將單詞序列組合成各類語法短語,如“程式”,“語句”,“表達式”等等.語法分析程式判斷源程式在結構上是否正確.源程式的結構由上下文無關文法描述.語法分析程式可以用YACC等工具自動生成。 完成語法分析任務的程式稱為語法分析器,或語法分析程式。 按照源語言的語法規則,從詞法分析的結果中識別出相應的語法範疇,同時進行語法檢查。

方法

目前,已存在許多語法分析的方法。但就產生語法樹的方向而言,可大致把他們分為自底向上和自頂向下兩大類。目前比較流行LL分析法和LR分析法。

自上而下語法分析方法

給定文法G和源程式串r。從G的開始符號S出發,通過反覆使用產生式對句型中的非終結符進行替換(推導),逐步推導出r 。

是一種產生的方法,面向目標的方法。

分析的主旨是選擇產生式的合適的侯選式進行推導,逐步使推導結果與r匹配.

自下而上語法分析方法

從給定的輸入串r開始,不斷尋找子串與文法G中某個產生式P的候選式進行匹配,並用P的左部代替(歸約)之,逐步歸約到開始符號S。

是一種辨認的方法,基於目標的方法。

分析的主旨是尋找合適的子串與P的侯選式進行匹配,直到歸約到G的S為止 。

功能

按照源語言的語法規則,從詞法分析的結果中識別出相應的語法範疇,同時進行語法檢查。

給定文法G和字元串( ∈VT*),檢查、判定 ∈L(G)?即檢查、判定是否是文法G所能產生的合法的句子,同時報告和處理語法錯誤。

構造元素

源程式串 (L1形式)

源語言的文法G

識別出的語法範疇的表示

相關詞條

相關搜尋

熱門詞條

聯絡我們