回覆列表
  • 1 # 使用者9638762506943

    四元式

    四元式是一種更接近目的碼的中間程式碼形式。由於這種形式的中間程式碼便於最佳化處理,因此,在許多編譯程式中得到了廣泛的應用。

    四元式

    四元式實際上是一種“三地址語句”的等價表示。它的一般形式為:

    (op,arg1,arg2,result)

    其中, op為一個二元 (也可是一元或零元)運算子;arg1,arg2分別為它的兩個運算 (或操作)物件,它們可以是變數、常數或系統定義的臨時變數名;運算的結果將放入result中。四元式還可寫為類似於PASCAL語言賦值語句的形式:

    result ∶= arg1 op arg2

    需要指出的是,每個四元式只能有一個運算子,所以,一個複雜的表示式須由多個四元式構成的序列來表示。例如,表示式A+B*C可寫為序列

    T1∶=B*C

    T2∶=A+T1

    其中,T1,T2是編譯系統所產生的臨時變數名。當op為一元、零元運算子 (如無條件轉移)時,arg2甚至arg1應預設,即result∶=op arg1或 op result ;對應的一般形式為:

    (op,arg1,,result)

    (op,,,result)

    在實際產生的四元式中,op往往用一整型數表示 (運算子的程式碼),它可能附帶有不止一種屬性。例如,加運算可以分為定點加法和浮點加法兩種,我們可用不同的整數值區分這兩種加法。至於四元式中運算物件arg1、arg2和結果域result,它們可以是指向符號表中某項的指示字,也可以是某個臨時變數的序號,因此,在實際的翻譯過程中,還需要進行相應的查填符號表工作。在本章中,由於我們只作原理性討論,所以假定臨時變數來自一個用之不竭的集合,而不去追求其經濟性。

  • 中秋節和大豐收的關聯?
  • 19速騰、凌度如何選?異地購車優惠大,需要注意的事項有哪些?