8.請比較下列三種程式語言C、Jva以及Javacript,其程式執行原理的差異。 (10%)
詳解 (共 1 筆)
詳解
| 語言 | 執行方式 | 編譯產物 | 執行環境 | 效能 | 特性 |
|---|---|---|---|---|---|
| C | 完全編譯 | 機器碼 (native code) | 作業系統 (直接在 CPU 跑) | 最快 | 低階控制,需手動管理記憶體 |
| Java | 編譯 + JVM 解譯/JIT | Bytecode (.class) | JVM (跨平台) | 中等(JIT 可接近 C) | 自動 GC,跨平台性強 |
| JavaScript | 直譯 + JIT | IR / 即時轉換 | 瀏覽器 / Node.js | 最慢(但現代引擎已優化) | 動態語言,靈活,跨平台 |
1️⃣ C 語言
-
編譯型語言 (Compiled Language)
-
執行原理:
-
C 程式碼經過 編譯器 (Compiler) 轉換成 機器碼 (Machine Code)。
-
編譯好的執行檔直接在作業系統上跑。
-
-
特點:
-
執行速度快(接近底層硬體)。
-
需要不同平台重新編譯(不具可攜性)。
-
管理記憶體需要手動(malloc/free)。
-
2️⃣ Java
-
半編譯半直譯 (Compiled + Interpreted / JVM Model)
-
執行原理:
-
Java 原始碼先經過 javac 編譯器 編譯成 Bytecode (.class)。
-
Bytecode 交給 Java Virtual Machine (JVM) 執行。
-
JVM 會解譯 (Interpret) Bytecode,或使用 JIT (Just-In-Time Compiler) 動態編譯成本機機器碼再執行。
-
-
-
特點:
-
一次編譯,到處執行(跨平台,因為 JVM 存在於各平台)。
-
相比 C 稍慢,但 JIT 可提升效能。
-
自動垃圾回收 (Garbage Collection)。
-
3️⃣ JavaScript
-
直譯型語言 (Interpreted Language,現代多為 JIT + Interpreter 混合)
-
執行原理:
-
JS 程式碼通常嵌入在 HTML 內,由 瀏覽器內建的 JavaScript 引擎(如 Chrome 的 V8, Firefox 的 SpiderMonkey)執行。
-
傳統上是 解譯執行 (Interpreted),但現代引擎會先將部分程式碼編譯成 中間表示 (IR),再 JIT 成機器碼以提升速度。
-
-
特點:
-
不需要事先編譯,隨寫隨執行(動態性高)。
-
跨平台(依賴於瀏覽器或 Node.js 執行環境)。
-
動態型別,執行效率通常比 Java、C 慢。
-