編譯器

關於基本區塊的說明,下列何者正確?

  1. A中途沒有分支進出,一定會連續執行的指令序列
  2. B將一個函式內含的所有指令彙整為一個的集合
  3. C將迴圈主體並排寫出數次份,以減少重複次數的形式
查看答案與解析

正確答案:A. 中途沒有分支進出,一定會連續執行的指令序列

基本區塊是只有開頭可進入、只有結尾可離開的指令序列,一旦開始執行,就不會中途跳出,也不會從中途進入。它是在成為分支目的地的指令之前,或分支指令之後切開而成的。區塊內的執行順序是固定的,因此容易進行區域性的最佳化,並以區塊作為節點的控制流程圖來表示整體的流程。整個函式通常由多個基本區塊構成,而並排迴圈主體的是迴圈展開。

  • A. 正確。入口只在開頭、出口只在結尾的指令序列。
  • B. 整個函式通常由多個基本區塊構成。
  • C. 並排迴圈主體的是迴圈展開。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 在控制流程圖中,節點與箭頭所代表的事物,下列組合何者正確?
  2. 關於SSA形式中介表示的特徵,下列何者正確?
  3. 將上方程式碼轉為SSA形式後,if敘述之後會加入類似「x3 = φ(x1, x2)」的式子。關於此φ函數的作用,下列何者正確?
  4. 關於編譯器的常數摺疊(constant folding),下列哪個範例正確?
  5. 對上方程式碼反覆進行常數傳播與常數摺疊,最終會變成什麼樣的程式碼?

這個領域的比較