編譯器

關於編譯器與直譯器的差異,下列何者正確?

  1. A編譯器在執行前翻譯,直譯器則是邊讀取邊執行
  2. B編譯器邊執行邊逐行翻譯,直譯器則是在執行前一併翻譯
  3. C編譯器只處理數值計算,直譯器只處理文字的處理
查看答案與解析

正確答案:A. 編譯器在執行前翻譯,直譯器則是邊讀取邊執行

編譯器會在執行前將整個程式翻譯成機器碼等,然後執行翻譯後的結果。雖然翻譯需要花時間,但執行會比較快,也可以花時間進行最佳化。直譯器則是邊讀取程式邊解釋並執行,雖然能馬上試跑,但執行往往較慢。實際上,也常使用結合兩者的方式,例如先翻譯成位元組碼再解釋,並對經常使用的部分進行JIT編譯。並不是依可處理的運算種類來區分。

  • A. 正確。差異在於是執行前翻譯,還是邊讀取邊執行。
  • B. 說明顛倒了。
  • C. 並不是依可處理的運算種類來區分。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 關於使用JIT編譯的執行環境之特徵,下列何者正確?
  2. 關於LLVM的基本架構,下列何者正確?
  3. 在指定編譯器最佳化等級的選項中,不進行最佳化的設定(-O0等)經常用於下列哪種情況?
  4. 關於使用剖析資料的最佳化(PGO)的說明,下列何者正確?
  5. 下列何者最適合作為連結時最佳化(LTO)所能實現的最佳化?

這個領域的比較