現代計算機是一個硬件與軟件組成的綜合體
- 第一級是微程序機器層,這是一個實在的硬件層,它由機器硬件直接執行微指令
- 第二級是傳統機器語言層,它是一個實際的機器層,由微程序解釋機器指令系統
- 第三級是操作系統層,它由操作系統實現。操作系統程序是由機器指令和廣義指令組成的,這些廣義指令是為了擴展機器功能而設置的,是由操作系統定義和解釋的軟件指令,所以這一層也稱為混合層
- 第四級是彙編語言層,他為用戶提供一種符号化的語言,借此可編寫彙編語言源程序
- 第五級是高級語言層,它是面向用戶的,是為方便用戶編寫應用程序而設置的
其實在高級語言層之上,還可以有應用層,它由解決實際問題的程序組成,比如word,chrome等等。
對于某層的使用者來說,它隻關心該層即可,而無需關心下一層的實現
- 需要注意的是在許多情況下,計算機的某些功能既可以由硬件實現,也可以由軟件來實現,因此硬件和軟件沒有嚴格的界限
軟件是人們事先編制的具有各類特殊功能的程序,他們通常存放在計算機的主存或外存中,按其功能可以分為以下兩類
(1)系統軟件系統軟件是一組保證計算機系統高效,正确運行的基礎軟件,通常作為系統資源提供給用戶使用。系統軟件主要有操作系統(OS)、數據庫管理系統(DBMS)、語言處理程序,分布式軟件系統、網絡軟件系統、标準庫程序、服務型程序等。
(2)應用程序應用軟件是指用戶為解決某個應用領域中的各類問題而編制的程序、如各種科學計算類程序,工程設計類程序,數據統計與處理程序。
三:三個級别的語言(1)編譯程序、解釋程序和彙編程序的區别注意:彙編程序是由彙編語言編寫而成的程序,與編譯型程序和解釋型程序完全不是一個概念
- 解釋程序:它将源語言書寫的源程序作為輸入,解釋一句就提交給計算機執行一句,并不形成目标程序
- 編譯程序:把高級語言源程序作為輸入,進行翻譯轉換,産生出的機器語言作為目标程序,然後讓計算機去執行這個目标程序,得到計算結果。
對于編譯程序來說,它産生目标代碼的執行速度要比解釋程序的執行速度快,比如循環,解釋程序需要不停的重複解釋,而編譯程序隻需要一次即可。
(2)三個級别的語言- 機器語言:用二進制“0”和“1”描述不同指令,編程人員需要記憶每一條指令的二進制編碼。其優點就是計算機可以直接識别并執行
- 彙編語言:其實質和機器語言是相同的,都是直接對硬件操作,隻不過指令采用了英文縮寫的标識符,更容易識别和記憶。彙編語言的程序必須經過一個稱為彙編程序的系統軟件的翻譯,将其轉化為機器語言,才能在計算機的硬件系統上運行
- 高級語言:需要經過編譯程序編譯成彙編語言程序,然後經過彙編操作得到機器語言程序。其優點在于方便編程人員寫出解決問題的方案和解題過程。
- 計算機體系結構:研究的是機器語言程序所見的計算機系統的屬性概念性的結構與功能特性(指令系統、數據類型、尋址技術、I/O機理)。也就是說是如何設計硬件與軟件之間的接口,舉例:無乘法指令
- 計算機組成原理:研究的是計算機體系結構體現出來的屬性,對于程序員來說是“透明的”。也就是說是如何使用硬件實現所定義的接口,舉例:如何實現乘法指令