阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 國立臺北教育大學_碩士班招生考試_資訊科學系:計算機概論#105558
科目:研究所、轉學考(插大)、學士後-計算機概論
年份:110年
排序:0

申論題內容

8.請比較下列三種程式語言C、Jva以及Javacript,其程式執行原理的差異。 (10%)

詳解 (共 1 筆)

詳解 提供者:CCC
語言 執行方式 編譯產物 執行環境 效能 特性
C 完全編譯 機器碼 (native code) 作業系統 (直接在 CPU 跑) 最快 低階控制,需手動管理記憶體
Java 編譯 + JVM 解譯/JIT Bytecode (.class) JVM (跨平台) 中等(JIT 可接近 C) 自動 GC,跨平台性強
JavaScript 直譯 + JIT IR / 即時轉換 瀏覽器 / Node.js 最慢(但現代引擎已優化) 動態語言,靈活,跨平台
 

1️⃣ C 語言

  • 編譯型語言 (Compiled Language)

  • 執行原理

    1. C 程式碼經過 編譯器 (Compiler) 轉換成 機器碼 (Machine Code)

    2. 編譯好的執行檔直接在作業系統上跑。

  • 特點

    • 執行速度快(接近底層硬體)。

    • 需要不同平台重新編譯(不具可攜性)。

    • 管理記憶體需要手動(malloc/free)。

2️⃣ Java

  • 半編譯半直譯 (Compiled + Interpreted / JVM Model)

  • 執行原理

    1. Java 原始碼先經過 javac 編譯器 編譯成 Bytecode (.class)

    2. Bytecode 交給 Java Virtual Machine (JVM) 執行。

      • JVM 會解譯 (Interpret) Bytecode,或使用 JIT (Just-In-Time Compiler) 動態編譯成本機機器碼再執行。

  • 特點

    • 一次編譯,到處執行(跨平台,因為 JVM 存在於各平台)。

    • 相比 C 稍慢,但 JIT 可提升效能。

    • 自動垃圾回收 (Garbage Collection)。

3️⃣ JavaScript

  • 直譯型語言 (Interpreted Language,現代多為 JIT + Interpreter 混合)

  • 執行原理

    1. JS 程式碼通常嵌入在 HTML 內,由 瀏覽器內建的 JavaScript 引擎(如 Chrome 的 V8, Firefox 的 SpiderMonkey)執行。

    2. 傳統上是 解譯執行 (Interpreted),但現代引擎會先將部分程式碼編譯成 中間表示 (IR),再 JIT 成機器碼以提升速度。

  • 特點

    • 不需要事先編譯,隨寫隨執行(動態性高)。

    • 跨平台(依賴於瀏覽器或 Node.js 執行環境)。

    • 動態型別,執行效率通常比 Java、C 慢。