4 系統程式 (System Program)
補充 - Linking 的種類
- Static Linking (like MACRO)
- Dynamic Linking (like Subroutine)
Static Linking
- 指在 linking 時會將外部參考的函式皆搬到程式中, 成為程式的一部份, 故程式將較佔 space, 但後續執行不需去呼叫外部函式
- 巨集 => 程式碼被撐大
- Static Linking => 執行檔會被撐大
- 圖:
Dynamic Linking
- Linking 時, 只將外部參考和外部函式所在做繫結, 不將外部函式載入, 故執行時在動態呼叫之
- Ex: .dll => Dynamic Linking Library
Compare
Static Linking | Dynamic Linking |
---|---|
可執行檔較大 | 較小 |
不需外部呼叫 => 快 | 需要 => 慢 |
若外部程式改 => 需 relinking | 不需 |
不受外在影響 => 較安全 | 受影響 (駭客可以改, 由於動態呼叫, 因此會被影響) => 較不安全 |
P-code compiler
- Def: 為 pesudo-machine 之 object code
- 類似中間碼
- 與機器獨立
- 高可攜性 => 具跨平台 cross platform
- 圖:
- 優點:只要機器上有 P-code interpreter 即可執行 => 具可攜性
- 缺點:P-code 使用 interpreter 執行, 所以執行速度較慢
- 中間碼:類似目的碼, 由 0, 1 組成, 但和機器獨立