關燈 巨大 直達底部
親,雙擊螢幕即可自動滾動
第3部分

於是,卡特勒開始尋找一個需要程式設計的新工作,他找到了杜邦公司的另一個部門,這個部門需要有人來幫助維護Univac製造的中央電腦。20世紀50年代時,Univac生產的電腦在處理資料方面是最好的,但是到了20世紀60年代後期,這個公司開始走下坡路了。杜邦公司叫卡特勒提高那些使用多年了的Univac電腦的可靠性,這意味著要調整機器的作業系統。在那之前,卡特勒甚至從來沒有考慮過作業系統。不過,公司的電腦專家看起來知道的也不是很多,於是他全身心地投入研究。

可以把計算機程式大致分為兩類。應用程式,簡稱為“應用”(apps),是軟體世界中看得到的一部分。它一類包括被普通使用者使用的程式。舉例來說,應用軟體可以跟蹤定單或者存貨,檢索名字和電話號碼,準備要列印的文件或者控制時事通訊的設計。書 包 網 txt小說上傳分享

第1章 程式碼勇士(4)

另一方面,作業系統也是軟體世界中看不到的一部分。它們是計算機的心臟,在背後跳動。表面看起來似乎所有的事情都是應用軟體做的,但是事實上很多工都是作業系統做的,比如開啟檔案、關閉檔案、為要儲存的資訊建立目錄、指揮計算機的輸入、輸出、儲存和網路裝置。

在數字計算機逐步成形的年代裡,也就是在第二次世界大戰之後,在設計者們眼裡,無論是作業系統還是應用軟體都是以後再考慮的事情。和由程式組成的“軟體”不同,由電子電路組成的“硬體”太難了,以至於工程師們不敢想像何時能完成它。硬體中,最重要的一類是真正將執行送給計算機的指令的電路系統,也就是處理器。第二類裝置用於資料輸入輸出的。第三類裝置用來儲存資訊。第四類裝置允許把資訊透過專門的電纜或者電話線發給另一臺計算機。

通常,只有在硬體到位後才考慮軟體問題。因此,設計計算機時並不知道以後執行什麼軟體,程式設計師只能做電腦硬體允許做的事情。艾茲格?迪科斯徹(E。 W。 Dijkstra)是計算機程式設計方面的著名理論家,他曾經概括了在計算機形成時期人們對編寫程式碼的普遍態度。他這樣說:可憐的程式設計師是什麼處境呢?說句實話,他們很難被注意到。首先,起初的計算機太大了,你根本就不能移動它們,除此之外,它們需要太*護工作,以至於很自然地,機器是在哪裡開發的,人們在哪裡使用它。其次,程式設計師做的是(某種程度上來說)根本看不見的工作,沒有什麼魅力。你可以把機器展示給參觀者們,那比幾頁程式碼的吸引力要大幾個數量級。但最重要的是,程式設計師自己對所做工作的看法也很平常:他工作的意義來源於計算機這種超棒的機器的存在。因為這種機器是獨一無二的,所以他知道他的程式設計只在本地有意義。因為機器只會使用不長一段時間,所以他知道他的編碼的延續價值很少或者沒有。程式設計工作表面上看起來很簡單。只是寫個請求給電腦。這種請求應該是以電腦能夠明白的方式表達的。而且,這種方式只有特定的電腦能夠明白。同樣的請求,完全以同樣的方式編寫,送給有著不同設計和電路的計算機,就會變得莫名其妙。

除了成為特定計算機的奴隸外,最早的計算機程式是很簡陋的。在第二次世界大戰之前,當時的計算機主要是機械的,很多時候,程式的價值和人工反轉開關、重新安排線路或切換齒輪的價值差不多。在20世紀30年代,要讓那個時代最強大的機械電腦——微分分析儀(Differential Analyzer)——去解決一個新的問題,準備工作就要花很多天。十年之後,要讓早期的數字計算機去解決一個比較難的問題,仍然要花幾天時間做設定工作。

更靈活一些的機器從打孔卡片或者紙帶上面讀取使用者的請求,不過卡片或者紙帶還是手工反饋給機器的。這種初級的程式設計方式迫切需要改進。

在1944年發生了突破,約翰?馮?諾依曼(John von Neumann)是出生在匈牙利的數學家,居住在美國,他提出了儲存程式的概念。這個概念與這個領域中的其他人的想法很相似,但是馮?諾依曼最清楚地看到了它的意義。使用儲存程式,送給計算機執行的指令可以儲存在機器自己的記憶體中,像對待資料一樣。這將大大提高啟動一個程式的速度,而且可以很容易地修改程式,或者從一個程式切換到另一個程式。

第1章 程式碼勇士(5)

隨著儲存程式的概念在初生的計算機文化中的廣泛傳播,程式設計變得越來越引人注目,很快吸引了一些擁