前言
大家還記得自己初次接觸計算機時的情形嗎?想必多數(shù)讀者使用的都是Windows系統(tǒng),應該也有不少讀者使用Visual Studio和Java等集成開發(fā)環(huán)境(IDE, Integrated Development Environment,即集成了編程所需的各種工具的開發(fā)軟件)開發(fā)過程序。Windows的圖形化操作界面,大大提高了計算機操作的便利性,而利用集成開發(fā)環(huán)境開發(fā)程序,就像用繪圖軟件畫圖一樣簡單。由此可見,這是一個便利的時代。
然而,現(xiàn)實卻不容樂觀,我們在享受這些方便的同時也付出了代價。雖然擁有一定的編程能力,卻無法進一步提高自身技能;知識應用能力的不足導致無法編寫源程序。越來越多的程序員正為這些問題而煩惱。個中原因在于,大家不了解程序運行的根本機制。
“雙擊程序圖標,程序開始運行”,作為一名程序員,對程序的了解僅僅停留在這一表層是不行的。我們還應該了解更深層的機制:加載到內(nèi)存中的機器語言程序,由CPU進行解析和運行,進而計算機系統(tǒng)整體的控制和數(shù)據(jù)運算也開始運行。了解了程序的運行機制后,就能找到編寫源程序的方法。
本書以通俗易懂的方式來解析程序的運行機制,適合想要學習編程的讀者,迫切希望提升技能的初級程序員,以及對計算機較為熟悉的中級用戶閱讀。為了便于說明,書中涉及了不少計算機硬件知識,不過本書的主題依然是編程,也就是軟件。
《日經(jīng)Software》雜志上連載過名為“程序是怎樣跑起來的”的文章,而本書就是在整合以上內(nèi)容的基礎上創(chuàng)作的。2001年10月,本書第1版出版后,受到了眾多讀者的歡迎,我們也收到了很多反饋信息。大部分讀者表示“了解了CPU的寄存器和內(nèi)存的運行方式,也知道了自己編寫的程序的運行機制,收獲頗豐”。不過也有編程經(jīng)驗較少的讀者表示“內(nèi)容有點難”。
值此第2版出版之際,我再次核對了全文,大幅增加了寄存器和棧等內(nèi)容的相關說明,并作了詳細的注釋。實例程序的代碼也由原來的Visual BASIC語言,換成了更便于說明程序運行機制的C語言,并在書的末尾添加了一個輔助章節(jié),對 C語言進行了簡單的介紹。通過這樣的改動,相信即便是覺得第1版有點難的讀者,也會感到滿意。
無論任何事情,了解其本質(zhì)非常重要。只有了解了本質(zhì)才能提高利用效率。這樣一來,即使有新技術出現(xiàn),也能很容易地理解并掌握。接下來,就讓我們一起在本書中探索程序的奧秘,尋求程序的本質(zhì)吧。
矢沢久雄
- Mastering Concurrency Programming with Java 8
- The Complete Rust Programming Reference Guide
- 大學計算機應用基礎實踐教程
- Getting Started with CreateJS
- MATLAB 2020 從入門到精通
- Functional Programming in JavaScript
- Raspberry Pi 2 Server Essentials
- 網(wǎng)店設計看這本就夠了
- ExtJS高級程序設計
- C/C++數(shù)據(jù)結構與算法速學速用大辭典
- 智能手機APP UI設計與應用任務教程
- Mastering ArcGIS Enterprise Administration
- 從零開始學Python網(wǎng)絡爬蟲
- Visual Basic程序設計(第三版)
- 物聯(lián)網(wǎng)系統(tǒng)架構設計與邊緣計算(原書第2版)