張愛香
山東理工職業學院信息工程系計算機應用教研室
計算機語言發展歷程綜述
張愛香
山東理工職業學院信息工程系計算機應用教研室
張愛香

計算機語言是方便人們控制計算機的重要工具。從第一臺計算機誕生開始,短短的幾十年間,計算機工作者編寫出上百種高級語言。當前人們在熟練使用高級語言的同時,對于計算機語言的發展歷史可能尚不了解。本文簡要地梳理計算機語言系統的發展歷史,簡單的介紹每種語言的特點,并在此基礎上對未來計算機語言的發展趨勢作出預測。
計算機; 語言; 歷史; 趨勢
上個世紀50年代,為了方便人們操控計算機的運行,第一代計算機語言——機器語言應運而生。從此之后,計算機語言獲得了高速的發展。計算機語言的發展,一方面是計算機迅速普及的需要,另一方面,也極大的促進了計算機在各個領域的應用,給人們的日常生活帶來了翻天覆地的變化。下面我們就簡單的梳理一下計算機語言的發展歷程。
所謂機器語言,就是人工編制好的一系列二進制代碼,計算機可以直接讀取并執行。最初的機器語言是打孔紙帶,用紙帶孔來表示0和1,按照一定的規則編寫后有計算機直接讀取執行。這種語言的特點是便于計算機的讀取和執行,但是編寫起來幾位麻煩,并且容易出錯。不過在那個年代,計算機語言的出現給計算機的應用帶來了一次質的飛躍——軟件工程師們并不需要了解太多計算機工作原理的知識,只要知道了語言編寫規則就能夠操控計算機完成相應的計算。這極大地簡化了計算機應用的難度,降低了門檻,是的計算機能夠在各個行業迅速的普及。因此,雖然機器語言與現在的高級語言相比極為粗陋和不便,但仍然有著重要的歷史意義。在當今機器語言并沒有被完全拋棄。一些專業用途的機器仍然采用機器語言,只不過用其他的更方便制作和修改的工具代替了打孔紙帶。通過使用讀取較為方便的機器語言,可以大大降低機器的制造成本,因為機器語言可以直接讀取,不需要計算機再對輸入的指令進行翻譯。
但機器語言過于晦澀難懂,只有經過專業訓練的專家才能夠正確的編制、修改,并且抽象難懂、易出錯,因此仍然不便于普大范圍的及。
簡單機器語言仍然不能方便人們操控計算機的運行,因此語言的進一步發展勢在必行。I/O技術的發展,使得計算機能夠使用更加先進的I/O設備,便于對計算機進行控制。匯編語言是對簡單語言的整合和替代——用一些字符來替代繁瑣的二進制代碼。例如鍵盤、磁帶的出現,使得人們在操控計算機的時候能夠更加的直觀。
匯編語言離不開匯編程序。因為計算機并不能夠直接讀取匯編語言,而要通過匯編程序將匯編語言轉換成類似于機器語言的二進制代碼。然后計算機通過讀取轉換來的二進制代碼來進行相應的操作。同機器語言相比,匯編語言對計算機用戶更加友好,通過匯編程序作為中介方便人們對計算機進行操控。但匯編語言只是對機器語言進行簡單的轉換,本質上同機器語言沒有差別,仍然有著機器語言所具有的缺陷,程序編制的效率較低、容易出錯,解讀起來較為困難,不方便程序員對程序進行維護。因此,匯編語言同機器語言一樣,仍然是一種低級的語言。同時,匯編語言也有優點——因為本質上仍然是機器語言,因此計算機執行起來速度快,不需要復雜的編譯就能夠直接讀取,可以直接使用計算機所具有的所有的功能,這是一些高級的語言所難以達到的。匯編語言一般用來編寫操作系統軟件,或者用來編寫直接控制計算機相關的設備和端口的程序。
機器語言和匯編語言都是低級語言。低級語言在用戶友好方便較為低級,不方便人們使用。使用者需要精通硬件的相關知識,并且了解計算機的工作運行原理,以通過匯編語言直接對計算機硬件進行操控。只有經過專業培訓的人才能夠熟練的掌握并正確的運用。但計算機的普及需要更加方便的計算機語言,能夠讓更多的人熟練掌握應用,以滿足人們計算機不同的功能需求。
要使得計算機語言更加容易掌握,需要使程序的編譯過程貼近人類所使用的自然語言,從而方便人們編寫程序,提高程序語言的可識別性。同時,這些語言又必須能夠被計算機所接收和解讀,并能夠執行相應的操作。高級語言降低了對硬件的操縱能力,但大大提高了對用戶的友好程度——這就是高級語言與低級語言的最大區別。因此,高級語言是面向用戶的語言,方便用戶的使用,對用戶更加友好。目前常用的高級語言主要有BASIC、PASCAL、C等等。高級語言的出現,大大方便了用戶自行開發軟件,極大地增加了計算機程序的多樣性,是的計算機能夠滿足人們各種各樣的需求,從而大大推動了計算機的普及和推廣。
高級語言,又分為過程性語言、非過程性語言和面向對象的語言。過程性語言,是指那些含有一系列過程性描述的計算機語言。一個完整的過程性語言程序完整的描述了一個計算機的執行過程。計算機按照程序編寫的順序,一步一步地執行相應的操作,最終完成程序所指定的工作。過程性語言是線性的,有一個起點和一個終點,起點與終點之間是對一系列契合的動作的描述,以指導計算機的執行。我們常用的BASIC和C等語言都是典型的過程性語言。過程性語言對需要按照一定順序執行的工作進行軟件的編譯。非過程性語言,與過程性語言相反,不需要說明具體的執行步驟,只需要說明所要解決的問題和相應的條件。因此非過程性語言不需要用戶了解具體的算法和步驟,只要將問題能夠準確地描述清楚就可以。具體的算法和步驟由語言內置。非過程性語言一般面向特定的問題,如數據庫語言SQL。面向對象的語言,通俗來說,就是窗口化的語言,為了適應窗口化的操作系統而產生的計算機語言。面向對象的語言主要編輯目標,即對象,是窗口化的如菜單、圖標等。通過對對象進行編譯富裕對象不同的特征和功能。對象化的語言編譯效率更高,更易于用戶的操作。常用的面向對象的語言,有C++,Java等。
計算機語言記過幾十年的高速發展,類型更加多樣,使用更加方便。因此,在未來,計算機的語言的發展必然會吵著標準化、網絡化和人性化的方向發展。
標準化的語言,能夠更加廣泛的接受和普及。20世紀60年代計算機語言呈現爆炸式地發展,在豐富了語言種類的同時也帶來了許多問題。大部分的計算機語言只能在特定的計算機上進行編譯,對其他種類的計算機的兼容性不足。這就導致了用不同語言編譯出的程序的可移植性極差,極大的降低了程序員的工作效率。為此,美國國家標準化協會制定了一系列的標準化計算機語言方案,統一各語言和硬件的工作標準,從而極大的方便不同的語言之間的交流以及軟件對不同硬件的兼容性,極大地提高了工作效率。
計算機網絡從出現到現在只經過了短短的二十幾年,給人們的生活方式帶來了翻天覆地的變化。網絡化的普及使得計算機語言急需一些方便易用的網絡語言。一方面,網絡編程語言能夠針對網絡化的程序進行編譯,充分滿足程序員對網絡程序更加復雜和多樣的需求;同時網絡編程語言有更高的兼容性,能夠在幾乎所有的計算機終端得到識別和執行。現在比較流行的網絡語言,主要有Perl,VBScript等。
人性化,一直是計算機語言發展的一個主要的推動力量。從最初的機器語言發展到現在的高級語言,人們能夠越來越簡單地掌握、解讀。計算機語言其實就是人與計算機之間進行交流的工具,因此計算機語言在保持能夠被計算機所解讀的基礎上,會越來越像人性化的方向發展,逐漸更加符合人類的習慣。我們有充分的理由相信,在不久的將來會出現更加人性化、智能化的計算機語言,更加方便人們對計算機進行操控。
[1][美]帕森,奧加. 計算機文化[M]. 田麗韞等譯.北京:機械工業出版社,2000.
[2]陶春. 計算機語言的發展[J]. 中共中央黨校學報,Vol.9,No.2, 2005.5.
10.3969/j.issn.1001-8972.2013.24.042