隻有硬件而無軟件的計算機,被稱為裸機,它必須裝入程序,才能用於計算處理-為了執行用高級程序設計語言編寫的程序,必須配置各種解釋程序與編譯程序。為了便於開發,需要充分利用多種軟件資源。相應地需要有完善的管理程序,來管理這些日益豐富的軟件資源與硬件資源。這就發展為一個相當龐大的軟件係統。
本章將盡可能通俗地介紹:軟件係統的組成,對程序設計語言的兩種處理方式即解釋與編譯;操作係統的主要功能與組成,並結合介紹計算機的幾種工作方式,如多道程序方式、批處理方式、分時係統方式、實時處理方式、多機與網絡方式等;有關數據庫係統的基本概念。最後以一種層次模型,形象地說明:一個計算機係統究竟包含哪些硬、軟件組成部分,以及它們之間的關係。
6.1軟件組成概述
在第一章中,我們已經提出了軟件這個詞,並作了初步的解釋:軟件包括程序及有關的文件。程序是軟件的主體,存儲在各種存儲器中的程序,是一些觸摸不到的信息:o或1,所以稱之為軟件,這是相對於可觸摸的硬件實體而言。
現在,計算機係統中的軟件已經極為豐富,而且以滾雪球的勢頭在繼續增加。對軟件的分類方法較多,下麵我們從兩種角度進行分類介紹,目的在於展現軟件的全貌,看一看究竟有哪些類型的軟件。
一、從軟件配置的角度分類
1.係統軟件
係統軟件是指:作為係統資源可供用戶使用的軟件,可以看成是軟設備,是係統的一部分,一般是由生產廠家提供。係統軟件的主要功能是:對計算機係統的硬、軟件進行合理的調度管理,為軟件提供運行環境,提高計算機係統的工作效率-,對使用程序語言編寫的程序進行翻譯處理,使之成為硬件可執行的程序;為用戶提供各種服務,幫助用戶進行開發調試.簡化或代替用戶的某些工作,或者說是對用戶給以支撐。相應地係統軟件又可分為幾類:
(1)操作係統,或一般管理程序。
(2)語言處理程序,其核心部分是解釋程序與編譯程序。
(3)各種支撐軟件,如各種開發調試工具類軟件、編輯程序、窗口軟件、診斷排錯程序,以及一些可供調用的通用性應用軟件,如字處理軟件、表格處理軟件、圖形處理軟件等。
2.應用軟件
應用軟件一般是指:用戶在各自應用領域中,為解決各類問題而編寫的程序。由於計算機的應用領域極其廣泛,這類應用軟件可以說不勝枚舉:如:
(1)科學計算類程序。
(2)工程設計類程序。
(3)數據處理類程序,
(4)管理類程序。
(5)自動控製類程序。
(6)情報檢索類程序,
當然,對係統程序與應用程序的劃分並不是一成不變的,一些具有通用價值的應用程序,可以納入係統程序之中,作為一種資源提供給用戶。
二、按軟,用途分類
1-麵向計算機管理和操作的軟件
在大部分計算機係統中都配置有操作係統,在較小配置的係統中則有監控程序,多終端係統中有分時係統軟件(它也屬於操作係統的一種類型)計算機網絡中有網絡通信軟件,為了各種目的還可能編製相應的管理程序。
2.麵向用戶,為用戶服務軟件
(1)各種語言處理程序:
(2)事務處理與數據庫管理程序:
(3)編輯程序及其他各種服務性程序:
(4)各種標準子程序庫與軟件包:
(5)各種領域的專用應用軟件。
3.計算機維護的軟件
如各種測試程序,故障檢查與診斷程序,軟件調試工具,某些自動糾錯程序等》
在本章中,我們將對幾種主要的軟件進行介紹。
6.2語言處理程序
在第三章中,我們曾經指出在語言方麵的一個基本矛盾:為了用戶編程的方便,提出了許多神程序設計語言,常用的如BASIC、FORTRAN,PASCAL,C語言等,但是另一方麵,計算機硬件隻能直接識別機器語言,即機器指令代碼。因此,在程序設計語言與機器代碼之間存在著較大的差別。程序設計謠言一般是通用的,多數語言麵向解題過程或處理對象,在語言格式上與自然語言相近一些,或接近於數學函數形式。機器語言是專用的,從屬特定的機型,對代碼的各段有嚴格的約定,這種二進製機器代碼與自然語言相差甚遠。這就需要一個起翻譯作用的程序,把用程序設計語言編寫的程序,翻譯為用機器代碼表示的程序,才能在機器上執行。