程式語言發展
一、面向機器的語言
最開始的時候,每種計算機都有自己的機器指令。例如,某種型號的計算機用8位二進位制資訊10001010表示加法指令,等等。所以用這種機器語言進行程式設計是很累的工作,而且程式碼難以閱讀和理解,還有就是可能同樣的任務,不同的計算機之間指令有所不同。後來用一些簡單的符號來代替二進位制指令,但組合語言仍是面向機器的語言,需針對不同的機器來編寫不同的程式碼。習慣上稱機器語言、組合語言為低階語言。
二、面向過程語言
20世紀60年代出現了過程設計語言,如c語言等。語言把程式碼組成叫做過程或函式的塊,每個塊的目標是完成某個任務。這樣的語言的好處是,不必再去考慮機器指令的細節,過程語言的語法更接近人們的自然語言,人們只需按照自己的意圖來編寫各個函式,而習慣上稱過程語言為高階語言。
三、面嚮物件語言
對於許多應用型問題,人們希望寫出易維護、易拓展、易複用的程式程式碼。過程語言只有解決問題的過程(方法),而沒有指明物件。那麼因此面對物件語言的一個簡單理念就是:需完成某種任務時,首先想到,誰去完成任務,即那個物件去完成任務;提到資料,首先想到這個資料是哪個物件的。
面向物件程式設計主要體現三個特徵:封裝性、繼承、多型。
一. 機器語言:最初的計算機所使用的是由“0”和“1”組成的二進位制數,二進位制是計算機的語言的基礎。計算機發明之初,計算機只能被少部分人使用,人 們需要用0、1組成的指令序列交由計算機執行,對於機器語言的使用與普及都是很令人頭疼的問題。對於程式的移植能力幾乎沒有,從而時間成本,人力成本十分昂貴。但機器語言也不是沒有優勢,由於這種語言是直接對計算機硬體進行操作,所以在特定型號的計算機上面,運算效率也是很高的,機器語言的出 現對於未來的計算機語言發展起到了很好的推動作用,所以機器語言也是第一代計算機語言。
二. 組合語言:組合語言是在機器語言的基礎上誕生的一門語言,用一些簡潔的英文字母、符號串來替代一個特定的指令的二進位制串,這也提高了語言的記憶性和識別性。對於程式的開發與維護起到了積極作用。組合語言同樣也是直接對硬體進行操作,這樣依然侷限了它的移植性。但是使用匯編語言針對計算機特定硬體而編制的組合語言程式,對於計算機硬體的功能和特長的發揮已有了很大進步,它精煉而質量高,所以至今仍是一種常用的程式開發語言。
三. 高階計算機語言:在與計算機的不斷交流中,人們對計算機程式的移植性需求不斷提高,此時急需要一種不依賴於特定型號的計算機的語言,用這種語言編寫的程式能在在各種平臺都正常執行。從最初的語言誕生至今,已經相繼出現了幾百種語言。高階語言的發展也從最初的結構化語言發展成為面向過程語言設計和麵向物件語言設計。面向過程語言設計的代表有:C語言,Fortran,cobol,pascal,ada等等一系列語言,而面嚮物件語言設計的代表則為:java, c++,c#等。
對於面向過程的程式來說,執行順序是流水線似的,在一個模組被執行完成前,人們不能幹別的事,也無法動態地改變程式的執行方向,這恰恰與人們的日常處理事情的方式相矛盾。而對於面相物件的程式設計來說,很好的將事物象的部分抽取歸類,各個累與模組之間能相互組合,完成特定的功能,同時又能重複使用。對使用者的技術要求也相對降低。