第1章 引論
章前導讀
對于計算機,也許你是老手,也許你是新人……
但不管怎樣,如果你現在要學習編程,那么你應該多多少少知道點什么叫硬件、什么叫軟件。
美國一個電腦神童說:“凡是摔到地上會壞的就是硬件。”我深感不妥,眾所周知,如果把硬盤摔到地上,硬盤壞了,里頭的那些數據也一樣壞得讓人心疼。
倘若按字面意思去理解,那就更加矛盾重重:硬盤“硬”,是硬件;軟盤“軟”,也是硬件。
還一種說法是:看得見摸得著的為硬件,看不見摸不著的為軟件。剛開始覺得它說得不錯,但馬上又能發現它的破綻:我現在用的Word 2010,它就在屏幕上,界面美觀、操作方便……
金山詞霸中有這樣的解釋:“硬件:計算機及其他直接參與數據運算或信息交流的物理設備。”挺好,硬件就是設備。平常生活中的各種設備,洗衣機、冰箱、電視,還有螺絲刀、鉗子,都是硬件。
軟件呢?“軟件:控制計算機硬件功能及其運行的指令、例行程序和符號語言。”指令、程序和符號語言是什么且不說,至少我們知道了軟件是用來控制硬件的運行的。
這就好辦了。我們可以打比方:譬如汽車,其本身自然是“硬件”,但關于駕駛車的那一套技術及有關交通規則,我們可稱之為“軟件”,因為后者控制了前者的運行。
現在來談“指令、程序和符號語言”。交通方面的“軟件”確實就是這些東西。不管你會不會駕車,但你至少應該坐過車吧?當看到警察在車前用指頭一指,司機就會臉色發青,之后,一套既定的處罰程序被執行。很快,聽說那司機又在學習那些用來表示“單行”“只許右拐”“不許停車”“禁鳴”等奇奇怪怪的符號語言了……
事實上,說軟件看不見摸不著其實也正確,因為它們是思想、精神、規則、邏輯,本身是抽象的,確實不可觸及。但軟件總是要有載體來存放的,要有表達或表現方式,這些使得它們變得形象具體起來。在此意義上,說軟件是摔在地上壞不了的東西,也相當行得通。
最后,什么是程序?我們來給它下個定義:
程序是一組按照一定的邏輯進行組合的指令。
因此,在以后的學習過程中,很多時候,我們會覺得程序就是指令;同樣很多時候,我們會覺得程序就是邏輯。
當然,更多的時候,我們并不區分程序和軟件。也許前者更趨于抽象,而后者更趨于具體。比如,在寫那些表達我們思想邏輯的指令時,我們喜歡說“寫程序”;而當程序完成,可以待價而沽時,我們稱它為軟件產品。