編譯原理——語法分析

語法分析

語法分析,詞法分析,語義分析直接將我拍在了沙灘上,我已經懵了,這篇不建議看,我只是從書中取出一個大概的框架,深層次的東西還沒有挖掘。

  • 簡介

    • 作爲編譯過程的核心部分,語法分析根據一定的語法規則,通過語法分析程序進行分析,識別出各類語法成分,進行語法檢查
  • 語法分析程序

    • 作用
      在這裏插入圖片描述
      • 輸入:記號流/記號序列
      • 輸出:分析樹
      • 功能:將記號組合成語法成分,語法檢查
  • 分析方法

    • 自頂向下的方法

      • 遞歸下降分析

        • 從文法的開始符號出發,視圖推出要分析的輸入串的過程,自頂向下的爲輸入串建立一棵分析樹
        • 文法的每一個非終結符號對應一個遞歸過程,即可實現這種帶回溯的遞歸下降分析方法。
        • 每個過程作爲一個布爾過程,一旦發現它的某個產生式與輸入串匹配,則用該產生式展開分析樹,並返回true,否則分析樹不變,返回false。
      • 遞歸調用預測分析

        • 特點:確定的,不帶回溯的遞歸下降分析方法
        • 牽涉到轉換圖,不展開來說了
      • 非遞歸預測分析

        • 使用一張分析表和一個棧聯合控制,實現對輸入符號串的自頂向下分析。
        • 模型
          在這裏插入圖片描述
          • 輸入緩衝區:存放用於分析的符號串
          • 符號棧:存放文法符號,$存放棧底,作爲標識
          • 分析表:在分析表中找到被調用的產生式
          • 輸出流:用於不斷產生的產生式序列
  • 自底向上的方法

    • 分析方法
      • 從輸入符號串開始分析
      • 查找當前句型的可歸約串
      • 使用規則,將其規約成相應的非終結符號
  • LR分析法

    • 簡介
      • L——表示自左至右掃描
      • R——表示輸入符號串構造一個最右腿到的逆過程
      • K——表示做出分析決定,向前看的輸入符號個數
    • 作用
      • 無回溯
      • 能分析無關上下文
      • 及時發現錯誤
    • 模型
      在這裏插入圖片描述
  • 軟件工具

    • YACC(Yet Another Compiler-Compiler)
    • 過程
      在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章