編譯器

關於LLVM的基本架構,下列何者正確?

  1. A是C語言專用的編譯器,無法用於其他語言
  2. B僅以特定CPU為對象的組譯器與連結器的組合
  3. C以共通的中介表示為中心,組合前半部與後半部
查看答案與解析

正確答案:C. 以共通的中介表示為中心,組合前半部與後半部

LLVM是以稱為LLVM IR的共通中介表示為中心的編譯器基礎架構。從C/C++的Clang開始,各種語言的前端會將原始碼轉換為LLVM IR,經過共通的最佳化階段後,再由面向x86、Arm、RISC-V、GPU等眾多CPU的後端產生機器碼。其優勢在於要支援新的語言或CPU時,只需製作其中一側即可。它既不是C語言專用,也不是特定CPU專用。

  • A. 有許多語言的前端,並非C語言專用。
  • B. 有許多面向CPU的後端,並非特定CPU專用。
  • C. 正確。以共通的中介表示為中心,組合前半部與後半部。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 在指定編譯器最佳化等級的選項中,不進行最佳化的設定(-O0等)經常用於下列哪種情況?
  2. 關於使用剖析資料的最佳化(PGO)的說明,下列何者正確?
  3. 下列何者最適合作為連結時最佳化(LTO)所能實現的最佳化?
  4. 在C語言中,有號整數的溢位是未定義行為。在此前提下,對上方函式進行最佳化的編譯器可能產生的程式碼,下列何者正確?
  5. 在程式的錯誤中,下列何者能在編譯時就被發現?

這個領域的比較