計算機語言如果你將它當做一個產品,就像我們平時用的電視機、剃須刀、電腦、手機等, 他的發展也是有規律的。任何一個產品的發展規律都是:向着人更加容易使用、功能越來越強大的方向發展。那么,我們的計算機語言的發展也是這樣,向着人更加容易使用,即更加容易寫代碼、更加容易實現現實邏輯的方向發展。套用奧林匹克的口號“更高、更快、更強”。那么計算機發展的主線可以總結為四個字:“更易、更強”。
第一代語言:機器語言
我們都知道計算機的基本計算方式都是基於二進制的方式。如下就是一段典型的機器語言代碼:
這種代碼是直接輸入給計算機使用的,不經過任何的轉換!
可是,這樣的代碼,又有幾個人能寫,又有幾個人能讀懂!如果用來解決最簡單的計算問題,湊合着用,沒問題。如果要解決復雜問題,需要寫幾千行、幾萬行這樣的代碼,估計誰寫誰瘋。
第二代語言:匯編語言
為了解決機器語言無法讀懂的問題。很自然,我們就想到能不能使用人可以讀懂的單詞來代替一些二進制指令和數據,方便我們人去讀、編寫代碼。於是,匯編語言誕生了。他使用了大量的助記符來代替二進制指令,方便我們人去編寫代碼。如:
顯然,這樣的代碼,要比起機器語言來,不需要再去背誦那些難記的二進制指令了!於是,有了更好的武器,意味着我們可以解決更復雜的代碼,寫個幾百行、幾千行匯編語言代碼也成為不那么復雜的事情。
【注】現在仍然有很多領域在使用匯編語言,比如:操作工業機器人、單片機編程、甚至某些計算機病毒的編寫等。
第三代語言
隨着晶體管、集成電路的出現,計算機的功耗越來越小、速度越來越快,計算機很快深入到了各行各業。有個很著名的定律叫做摩爾定律,他深刻的展示了計算機發展的規律:
“當價格不變時,集成電路上可容納的晶體管數目,約每隔18個月便會增加一倍,性能也將提升一倍。換言之,每一美元所能買到的電腦性能,將每隔18個月翻兩倍以上”
這樣,隨着計算機深入更多的企業、單位、甚至更人。我們很自然的就希望使用計算機解決我們身邊的問題。這種需求越來越明確,越來越復雜。匯編語言在體系結構設計上的缺陷,根本無法勝任解決復雜問題。使用匯編語言寫幾萬行代碼,幾十萬行代碼,那真的可以稱之為”噩夢”.
於是,各種各樣,結構化設計更加優良的第三代語言誕生了。例如:C語言、Fortran、cobol、pascal、ada、c++、java、c#。
第三代語言數量眾多,大體上分為:面向過程和面向對象兩大類。C語言是典型的面向過程的語言。C++、JAVA是典型的面向對象的語言。