地方政府公務人員四等-資訊處理類科計算機概要109 年第 3 題單選題
程式設計師編寫的高階語言程式,通常需要先經過特定工具的處理:①組譯器 ②編譯器 ③聯結器,將高階程式語言轉成計算機可執行的形式,才能在計算機上執行。上述工具的處理順序為何,才能將由多個檔案組成的高階語言程式轉換成機器執行的二進制形式?
C正確答案
高階語言→編譯器轉組合語言→組譯器轉機器碼→聯結器合併多檔成執行檔,順序為 ②①③。
為什麼答案是 C
②①③ 即編譯器→組譯器→聯結器。高階語言先由編譯器轉成組合語言,再由組譯器轉成目的檔(.obj),最後聯結器將多個目的檔與函式庫合併為可執行檔。
載入中…
完整詳解
Pro · 無限重點 高階語言→編譯器轉組合語言→組譯器轉機器碼→聯結器合併多檔成執行檔,順序為 ②①③。
記口訣:編(譯)→組(譯)→聯(結)。高階語言先編譯成組語,再組譯成目的檔,最後聯結多個目的檔成執行檔。
逐選項分析
A✕
①②③ 即組譯→編譯→聯結,順序錯誤。組譯器處理的是組合語言,不能直接處理高階語言程式。
B✕
③①② 即聯結→組譯→編譯,完全相反。聯結器必須在目的檔產生後才能運作,不可能最先執行。
C✓ 正確
②①③ 即編譯器→組譯器→聯結器。高階語言先由編譯器轉成組合語言,再由組譯器轉成目的檔(.obj),最後聯結器將多個目的檔與函式庫合併為可執行檔。
D✕ 陷阱
③②① 即聯結→編譯→組譯,順序顛倒。陷阱在於考生若誤以為聯結是「最前面整合原始碼」會選此項,但聯結器處理的是目的檔不是原始碼。
程式翻譯流程
| 步驟 | 工具 | 輸入 | 輸出 |
|---|
| 1 | 編譯器 Compiler | 高階語言 (.c) | 組合語言 (.s) |
| 2 | 組譯器 Assembler | 組合語言 (.s) | 目的檔 (.obj/.o) |
| 3 | 聯結器 Linker | 多個目的檔+函式庫 | 可執行檔 (.exe) |
考生常誤以為「多檔案」要先用聯結器整合,其實聯結器處理的是已編譯完成的目的檔(object file),不是原始碼。正確流程是每個原始檔各自編譯+組譯完成後,最後才聯結合併。