Q1: 請解釋組譯器 (assembler)、直譯器 (interpreter) 與編譯器 (compiler) 之間的差異與應用情境。
🔹 組譯器 (Assembler)
-
定位:介於「組合語言」與「機器碼」之間的工具。
-
功能:將 組合語言 (Assembly) 逐條指令轉換成對應的 機器碼。
-
特點:
-
一對一翻譯,組譯後的執行速度最快。
-
與硬體架構密切相關(同一段組合語言在不同 CPU 架構可能不通用)。
-
-
使用情境:
-
嵌入式系統(例如控制器、感測器)。
-
驅動程式開發(直接控制硬體)。
-
效能要求極高或需要直接操作硬體暫存器的場合。
-
🔹 編譯器 (Compiler)
-
定位:將「高階語言」轉換成「可執行程式」。
-
功能:將整份 高階語言程式碼(如 C、C++、Rust)一次性翻譯成 機器碼或中間碼 (bytecode)。
-
特點:
-
一次性翻譯,生成執行檔。
-
執行效率高(因為已經是機器碼)。
-
缺點是 編譯過程較慢,開發過程需要等待編譯完成。
-
-
使用情境:
-
系統軟體(如作業系統核心)。
-
效能要求高的應用程式(C/C++/Rust)。
-
跨平台應用(Java 透過編譯成 bytecode,交由 JVM 執行)。
-
🔹 直譯器 (Interpreter)
-
定位:直接執行程式碼的「解釋器」。
-
功能:逐行讀取、翻譯並 立即執行程式碼。
-
特點:
-
跨平台性強,不需事先編譯。
-
除錯方便,適合快速開發與測試。
-
缺點是 執行速度較慢(每次執行都要重新解譯)。
-
-
使用情境:
-
腳本語言:Python、JavaScript、Ruby。
-
互動式開發環境 (REPL)。
-
快速原型設計或 教育學習場合。
-
沒有留言:
張貼留言