1. 程式人生 > >編譯原理第七章——語義分析和中間程式碼的產生

編譯原理第七章——語義分析和中間程式碼的產生

1、知識點圖


重點記憶:

說明語句的翻譯

     程式語言中的說明語句都是給編譯程式提供資訊的,諸如型別、維數、每維的界種類等,因此一般不生成目標,只是在編譯時把有關資訊填入相應表格即可。

賦值語句的翻譯

 1.簡單算術表示式的賦值語句:

      所謂簡單指不考慮陣列元素、記錄、函式的引用等情況。

控制流語句的翻譯

可以仿照算術表示式的翻譯來進行。
  例如 A∨B∧C=D可翻譯成如下四元式序列:
      (=,C,D,T1)
      (∧,B,T1,T2)
      (∨,A,T2,T3)

  但是對於控制語句中的條件表示式,我們還必須結合控制語句作進一步的分析。

過程呼叫的翻譯
   1. 過程呼叫主要解決兩個問題:
      (1)把程式控制轉移到子程式(過程段),執行完畢再返回。這個問題很好解決。

      (2)傳遞實在引數。我們前面談到過幾種不同的引數傳遞方式(傳名、傳值、傳地址),它們的語義動作也就有所區別。

2、驗證使用(習題處理):


3、課堂感受:

     這一章比較重要的是中間程式碼的表示方式,逆波蘭,三元式,四元式的表示,還有將程式轉換成三元式,四元式等,總的來說還是比較簡單的。