索引 / 001 ZH-TW
計算機系統:程式設計師的視角 cover

電腦科學

電腦科學

計算機系統:程式設計師的視角

Randal E. Bryant and David R. O'Hallaron

英文原名: Computer Systems: A Programmer's Perspective

以程式設計師為中心,貫通資料表示、機器碼、記憶體、程序、連結、網路與並行的計算機系統導論。

難度等級
中級
學術層次
大學部
計算機系統C語言組合語言記憶體階層作業系統網路並行

01 / 經典教材推薦

經典教材推薦

引用

Bryant, R. E., & O'Hallaron, D. R. (2015). Computer Systems: A Programmer's Perspective (3rd ed.). Pearson.

為什麼重要

本書把程式設計師撰寫的程式碼與支撐程式執行的硬體和作業系統機制連接起來。它填補了入門程式設計與計算機結構、編譯器、作業系統和網路等進階課程之間的系統層空缺。

核心概念

資料具有機器層意義

整數、浮點數、指標和字串都是有限的位元模式。理解這些表示方式,才能解釋溢位、精度、可攜性和許多安全問題。

程式會成為程序

編譯、連結、載入、例外、訊號和程序構成一條連續的機制鏈。理解這條鏈,才能分析程式的效能與行為,而不是把作業系統當成黑箱。

記憶體是一種階層

快取、虛擬記憶體和區域性決定了計算成本。本書讓讀者看見,效能不只取決於處理器速度,也取決於程式結構。

並行改變推理方式

執行緒、同步和共享狀態會引入一般順序推理無法涵蓋的交錯執行。程式正確性因此需要明確的協調機制。

閱讀方法

選取一個小型 C 程式,從原始碼追蹤到機器指令,再跟隨它的記憶體存取和程序狀態。目標不是背誦組合語言,而是理解效能與正確性問題中哪些抽象仍然可見。

結語

《計算機系統:程式設計師的視角》是計算機科學中的橋樑型教材,為程式設計師提供設計更快、更安全、更具可攜性軟體所需的系統直覺。