- 從問題到程序:C/C++程序設計基礎
- 裘宗燕 李安邦編著
- 2592字
- 2023-11-07 15:57:46
1.1.1 計算機程序與程序設計
計算機程序的情況與前面介紹的日常生活中的程序性活動類似,這種情況可以幫助我們理解計算機的活動方式。當然,日常生活中的程序性活動可以有許多變化,人們參與時也不一定完全按程序的步驟做,可以有許多“靈活性”。而計算機不同,它對程序的執行是嚴格的、一絲不茍的,總是一步步地按程序中的指令辦事,一點“商量”的余地也沒有。
目前人們廣泛使用的臺式個人計算機、筆記本計算機、平板計算機、手機等設備,雖然外觀各異,但都屬于計算機(全稱是“通用電子數字計算機”)的范疇,它們能完成的工作就是計算。計算機的最基本功能就是可以執行一組基本操作,每個操作完成一件很簡單的計算工作,例如整數的加減乘除運算等。進而,計算機提供了一套指令,每種指令對應計算機硬件能執行的一個基本動作,使人們可以基于指令來編排程序,指揮計算機完成復雜的工作。
一個完整的計算機系統包括硬件系統和軟件系統兩大部分,并依靠硬件和軟件的協同工作來完成各種計算任務。計算機硬件系統指構成計算機的所有物理部件的總和,它們看得見、摸得著,是一些實實在在的有形實體。計算機硬件系統采用馮·諾依曼體系結構,由控制器、運算器、存儲器、輸入設備和輸出設備5個部分組成,這些部分連成一體,如圖1-1所示。

圖1-1 計算機硬件系統簡圖
控制器是計算機硬件的控制指揮中心,負責協調和指揮整個系統的操作。它的主要功能是解析程序指令,安排操作順序,控制數據流向,產生各種控制信號,指揮各部件有條不紊地協調工作。
運算器是對數據進行加工、運算的部件,它接受控制器的指示,按照規則完成加、減、乘、除、比較等算術運算,還可以完成與、或、非等邏輯運算和一些其他操作。
運算器和控制器等部件構成了計算機硬件的核心,在目前的各種計算機硬件中,這兩個部件一般被集成在同一塊半導體芯片里,稱為中央處理器(CPU)。
存儲器是具有記憶功能的部件,用于存放程序和數據。現代計算機系統中的存儲器可以分為兩大類:內部存儲器(簡稱內存,或稱為“運行內存”)和外部存儲器(簡稱外存)。
內部存儲器可以直接與CPU交換信息,其特點是速度較快,但容量相對較小。計算機運行中使用的程序和數據都需要先裝載到內存中。系統關機(電源斷開)后,內存里的信息將全部丟失。
外部存儲器通常通過接口電路和連線連接到主機。其特點是存儲容量大,但存取速度相對內部存儲器要慢很多,其中存儲的信息具有持續性,不需要電源支持,系統關機后仍然存在。外部存儲器用于長期存放計算機系統需要的系統軟件的文件、應用程序、文檔和數據等。當CPU需要執行保存在外存中的某部分程序和數據時,就需要把這些程序和數據由外存調入內存,以便CPU直接訪問。目前常用的外存設備有硬盤、移動存儲器(U盤)和光盤等。
輸入設備是把程序和數據輸入計算機的硬件裝置,常用的輸入設備有鍵盤、鼠標、掃描儀、條形碼閱讀器、光筆。輸出設備負責輸出運算的結果,常用的輸出設備有顯示器、打印機、繪圖儀等。
在計算機系統中,各種硬件部件通過地址總線、數據總線、控制總線等連接在一起。然而,僅由硬件構成而沒有安裝任何軟件的計算機系統只能稱為裸機。裸機難以完成任何有用的工作。只有安裝了軟件的計算機系統才算是完整的,才能執行人們所需的工作。
計算機系統的軟件分為兩類:系統軟件和應用軟件。
系統軟件(system software)指由計算機生產廠商(或“第三方廠商”)為用戶使用計算機而提供的各種基本軟件。常見的系統軟件有操作系統、編程語言處理系統、數據庫管理系統、網絡通信軟件、各類服務程序和工具軟件等。系統軟件以外的軟件都稱為應用軟件(application software),是由專業人士或廠商為支持具體應用領域的工作、解決實際問題而開發的。應用軟件用各種程序語言編寫,可以滿足人們各方面的需要,如辦公軟件、文字處理軟件、網絡瀏覽器、游戲軟件、音頻/視頻制作和播放軟件、計算機輔助設計軟件、圖形處理軟件、壓縮和解壓縮軟件、反病毒軟件等都是應用軟件。計算機用戶利用各種應用軟件完成自己的工作或滿足日常生活的需要。
計算機硬件在CPU和系統軟件的管理下,協調一致地工作。計算機能夠自動完成各種數值運算和復雜的信息處理過程的基礎就是存儲程序和程序控制。計算機的運行過程可以簡要描述為:將待執行的程序和待處理的數據由輸入設備或外存裝入內存;CPU從內存中取出程序的指令,根據需要到指定地址取出所需數據,并要求運算器執行指令的操作;運算結果存入內存,根據需要通過輸出設備輸出;整個過程都在CPU的控制器的管理下進行。
由此可見,人與計算機交流的基本方式就是提供要求計算機執行的程序(program,或稱為“計算機程序”)。當計算機接受用戶的命令去執行某個程序時,它就會按照程序的規定,一絲不茍地執行其中的指令,直至整個程序結束。
計算機是一種通用的計算機器,加上一個或一組程序后,它就會變為處理某個或某些專門問題、完成某種或某些特殊工作的專用機器。這種通用性與專用性的統一非常重要:一方面,計算機可以在大工廠里采用現代化生產方式大量制造;另一方面,通過運行不同程序,一臺計算機可以在不同時間處理不同問題(如文字處理、上網瀏覽、玩游戲等),甚至同時處理許多不同的問題。這就是計算機強大功能的真諦。人們描述(編制、構造)計算機程序的工作被稱為程序設計或者編程(programming),這種工作的產品就是程序。
程序、軟件、應用軟件和APP
程序是對一項計算任務的處理對象和處理規則的描述。人們編寫完一個程序并交付用戶使用時,通常還需要向用戶提供配套的文檔(通常包括設計說明書和使用手冊等,可以是電子版或紙質版),以便用戶了解程序的使用方式和規則。實現某種功能的程序(或一組程序)及其配套文檔總稱為一個軟件。
計算機軟件是計算機系統中程序和文檔的總稱,包含系統軟件和應用軟件兩類(如上面正文所述)。
應用軟件通常只能運行于特定的操作系統上。人們常把安裝在智能手機上的應用軟件稱為APP(來源于英語單詞“application”,讀作/?p/或/eip/,中文用戶通常讀作/eipipi/)。
在當代,計算機快速發展并在各領域廣泛應用,它對人類社會生活的各方面產生了深刻影響。計算機之所以能對人類社會發展產生這么大的影響,其原因不僅在于人們發明并大量制造了這樣一種令人敬畏的奇妙機器,更重要的是人們開發了數量巨大、類型各異、能指揮計算機完成各種簡單或復雜工作的程序。目前正在使用的計算機種類并不多,而正是數量繁多、功能豐富的程序給了計算機無窮無盡的生命力,改變了人們的工作和生活。