原文再續,書接上一回,上一文章我們說到,由於電晶體計算機具有體積小、重量輕、發熱少、耗電省、速度快、壽命長、價格低、功能強的特點,所以電晶體計算機迅速替代了電子管計算機,並且讓計算機快速普及開來。
而程式語言經歷了機器語言到彙編語言的更新之後,人們發現了限制程序推廣的關鍵因素——程序的可移植性。需要設計一個能夠不依賴於計算機硬體,能夠在不同機器上運行的程序。
彙編語言其實只是比機器語言更加容易記憶和書寫,它和機器語言一樣,也是一種面向機器的語言,很難從其代碼上理解程序設計意圖,設計出來的程序需要繼續修改才能夠移植到其他平臺。
所謂面向機器的語言,就是編程的主體是機器。舉個例子,現在我們需要計算一個數,1+2等於幾?當然做完一個人,你很快就能算出來是等於3,並且安照正規的計算格式寫上。
解:1+2=3
而計算機不一樣,我們要讓它計算1+2等於幾,需要這樣操作:
第一步,我們給一個變量a賦值,讓它等於1,這個變量有8位有效值,即在內存的記錄是1.0000000
第二步,我們給一個變量b賦值,讓它等於2,這個變量有8位有效值,即在內存的記錄是2.0000000
第三步,我們將變量a和變量b相加,得到的值,賦予變量c,這個變量也是有8位有效值,即在內存的記錄是3.0000000
第四步,將變量c顯示在屏幕上,然後我們得知,1+2是等於3的。
所以彙編語言就是這樣的一種面向機器的語言,它在計算機中運行的效率是十分高效的,但是彙編語言實在太過於難懂,而且需要花很長的時間才能編一個程序,而且在不同計算機中移植時還需要進行修改。
需要那時候的科學家設計一個能夠不依賴於計算機硬體,能夠在不同機器上運行的程序。這樣可以免去很多編程的重複過程,提高效率,同時這種語言又要接近於數學語言或人的自然語言。
在計算機還很稀缺的50年代,當時計算機的造價還是不低的,我們當然希望讓它一直給我們進行計算,讓它給我一直工作,這才能讓它的價值發揮出來。
但是,由於彙編語言的特點,這臺計算機的工作效率是很高,計算某個東西算起來很快,因為編一個程序需要花很長時間,所以它裡面沒多少軟體,所以除了那幾個有限的功能,我們可以使用計算機計算,其他的大部分時間,計算機處在一種空置的狀態。
為了更高效地使用計算機,人們設計出了高級程式語言,經過各軟體工程師和專家的不懈努力,1954年,第一個完全意義的高級程式語言FORTRAN問世了,他完全脫離了特定機器的局限性,是第一個通用性的程式語言。
用高級程式語言編寫的程序需要經過翻譯,翻譯成機器所能識別的二進位數才能由計算機去執行。雖然,高級程式語言編寫的程序需要一些時間去翻譯代碼,從而降低了計算機的執行效率,但是實踐證明,高級程式語言為工程師帶來的便利遠遠大於降低的執行效率
舉個例子,同樣我們需要計算一個數,1+2等於幾?使用高級程式語言,就是這樣寫的:
第一步:c=1+2
第二步:顯示c的值。
由於高級程式語言更加符合我們的語言邏輯,所以它比彙編語言更加容易學習,而且它是一門面對對象的語言,編寫的時候可以忽略硬體的操作,所以使用的時候不需要考慮硬體,這會讓編程的門檻降低到了,只要有基本的邏輯思想的人,都能學會高級程式語言。
高級程式語言作為一種通用的程式語言,它的語言結構和計算機本身的硬體以及指令系統無關,它的可閱讀性更強,能夠方便的表達程序的功能,更好的描述使用的算法。同時,它更 容易被初學者所掌握,很容易學習。而且容易學習掌握。但是高級程式語言因為是一種編譯語言,所以他的運行速度比彙編程序要低,同時因為高級語言比較冗長,所以代碼的執行速度也要慢一些。
高級程式語言,作為用戶層面的編程工具,用戶並不需要去了解硬體的結構,而是去用邏輯的語言去實現想要的目標,但是因為高級程式語言的架構高於彙編,所以不能編寫直接訪問硬體資源的系統程序,因此,高級程式語言必須要調用彙編語言編寫的程序來訪問硬體地址。
由於高級程式語言的普及,使得各種各樣的程序出現,這使得計算機的功能大大增強,使得計算機的能夠快速地普及,推動第三次科技革命加快……