編譯原理——期末整理


1.前言

介紹編譯原理,了解一個新的領域,得去了解它的整體框架

  • 詞法分析
    • Thompson算法,子集構造算法(DFA,NFA),Hopcroft算法
  • 語法分析
    • LL(1),消除左遞歸,提取公共左因子,構造預測分析表,分析過程
    • LR(0),構造DFA,構造LR(0)分析表,進行語法分析,寫出過程
    • 短語,巨型,產生式,直接短語,句柄概念
  • 語義分析(語法制導翻譯)
    • 逆波蘭表示法
    • if,while的逆波蘭
  • 中間代碼生成(生成匯編)
    • 數組、if、while的中間代碼
  • 代碼生成優化
    • DAG圖的優化
  • 執行匯編(3地址或4地址代碼的匯編執行)

2.詞法分析

1.根據語言寫出文法產生式

2.構造與某一正規式等價自小DFA

DFA(Deterministic Finite Automation):確定有限自動機

NFA(Non-Deterministic Finite Automation):非確定有限自動機

解題步驟:

  • 1.根據正規式畫出對應狀態的狀態轉換圖
  • 2.根據狀態轉換圖畫出對應狀態
  • 3.根據狀態轉化矩陣得到重命名的狀態轉換矩陣
  • 4.根據重命名狀態轉換矩陣得出DFA

3.DFA化簡

解題步驟:

  • 1.划分初態集合和終態集合
  • 2.划分
  • 3.畫出新DFA

4.總結

3.語法分析

1.消除左遞歸

2.LL(1)分析法

LL(1)3個條件:

1.有沒有左遞歸
2.有沒有回溯
3.first和follow集合有沒有相交

3.根據產生式畫出語法樹,寫出短語,直接短語,句柄

4.LR(0)分析法

4.語義分析

1.逆波蘭表達式(只考算術表達式)
a+b*c+d的逆波蘭為
abc*+d+

5.中間代碼生成

1.數組,if語句,while的翻譯

5.優化

DAG圖優化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM