什麼是中間表示法(IR)

在編譯器內部,以不依賴原始語言也不依賴CPU的形式表示程式。多數最佳化在此之上進行,可將每種語言的前半部與每種CPU的後半部分開。

日文名稱: 中間表現

「中間表示法(IR)」出現在5領域的6道練習題中(編譯器, 功率半導體, 影像感測器與光電元件等)。

這個名詞所屬的領域: 編譯器

練習中間表示法(IR)的題目

編譯器內部使用不依賴來源語言、也不依賴CPU的中介表示(IR),其主要優點為何?

  1. A因為使用中介表示後,不必讀取原始碼就能進行編譯
  2. B因為中介表示可由CPU直接執行,所以不需要產生機器碼
  3. C因為可以將各語言專屬的前端與各CPU專屬的後端分開,且最佳化也能共用
查看答案與解析

正確答案:C. 因為可以將各語言專屬的前端與各CPU專屬的後端分開,且最佳化也能共用

要支援M種語言與N種CPU時,若依每種組合各做一個編譯器就需要M×N個,但若透過共用的中介表示,只需要M個從語言到中介表示的前端(frontend),以及N個從中介表示到CPU的後端(backend)。多數最佳化只要在中介表示上做一次,所有語言與CPU都能使用。中介表示並非CPU可直接執行的東西,最後仍需轉換為機器碼。

解析中的「中間表示法(IR)」

出現「中間表示法(IR)」的題目(6題)

  1. 編譯器內部使用不依賴來源語言、也不依賴CPU的中介表示(IR),其主要優點為何?
  2. 在電源電路等中,為了測量電流而串聯在電流路徑中的小電阻稱為什麼?
  3. 設置在影像感測器每個像素上方的微透鏡,其作用為下列何者?
  4. 在高腳數的BGA封裝中,將大部分的球分配給電源與接地,其主要原因為何?
  5. 關於LLVM的基本架構,下列何者正確?
  6. 晶片的電源電壓需要保留餘裕(margin)的理由中,下列何者不是?

相關名詞

霍爾元件 微透鏡 BGA(球柵陣列) LLVM GPU 共同子運算式消除 向量化 行內展開 抽象語法樹(AST) 指令排程

前往名詞解釋列表