周瑞環
摘 要 計算機語言的發展歷史是人們不斷追求更高的模塊化、抽象和封裝的歷史。本文根據計算機的發展歷程來介紹計算機語言的發展歷史。從計算機的發展和人們的需求出發,說明計算機語言的發展的必然性。并且計算機語言的發展還有很長的路要走。
關鍵詞 機器語言 匯編語言 高級語言
中圖分類號:TP312文獻標識碼:A
語言是人們描述現實世界,表達自己思想觀念的工具。而計算機語言是人與計算機交流的工具。一方面人類使用各種計算機語言將所關心的現實世界映射到計算機世界;另一方面,人類又可以通過計算機語言創造現實世界中并不存在的虛擬世界。現代計算機的體系結構及實際計算模型則是馮.諾依曼模型。計算機語言的發展歷程也從此正式開始。下面將根據計算機的發展來介紹幾種計算機語言。
1機器語言
當所有人都習慣與操作越來越小巧的計算機后,你是否能夠想象世界上的第一臺計算機,重27噸,占地150平方米是這樣的龐然大物。這樣的機器需要幾十個人同時操作電子開關,機器才能運算。計算機發明之初,科學家只能用二進制數編制的指令控制計算機運行。每一條計算機指令均由一組“0”、“1”數字,按一定的規則排列組成,若要計算機執行一項簡單的任務,需要編寫大量的這種指令。這種有規則的二進制數組成的指令集,就是機器語言。機器語言是計算機唯一能識別并直接執行的語言,與匯編語言或高級語言相比,其執行效率高。但其可讀性差,不易記憶;編寫程序既難又繁,容易出錯;程序調試和修改難度巨大,不容易掌握和使用。
2匯編語言
為了減輕使用機器語言編程的痛苦,20世紀50年代初,出現了匯編語言。匯編語言用比較容易識別、記憶的助記符替代特定的二進制串。如ADD AX , BX ;表示將寄存器AX 和 BX 中的內容相加,結果保存在寄存器AX中。通過這種助記符,人們就能較容易地讀懂程序,調試和維護也更方便了。匯編語言的一條匯編指令對應一條機器指令,與機器語言性質上是一樣的,只是表示方式做了改進,其可移植性與機器語言一樣不好。總之,匯編語言是符號化的機器語言,執行效率仍接近于機器語言,因此,匯編語言至今仍是一種常用的軟件開發工具。
3早期高級語言
1956年首先在IBM公司的計算機上實現的由美國的計算機科學家巴科斯設計FORTRAN語言,標志著高級語言的到來。FORTRAN語言以它的簡潔、高效性,成為此后幾十年科學和工程計算的主流語言。早期的這些計算機語言都是面向計算機專業人員,為了普及計算機語言,使計算機更為大眾化,出現了入門級的BASIC語言,至今BASIC語言仍然是絕大多數軟件開發人員接觸到的第一們計算機語言,同時也最流行的計算機語言。
4結構化高級語言
20世紀70年代初,結構化程序設計的思想孵化出兩種結構化程序設計語言,一種是PASCAL語言,另一種是C語言。它們主要的區別在于PASCAL語言強調的是語言的可讀性,因此PASCAL語言至今成為學習算法和數據結構等軟件基礎知識的教學語言;而C語言強調的是語言的簡潔性以及高效性,因此C語言成為之后幾十年中主流的軟件開發語言。
但是,到了70年代末期,隨著計算機應用領域的不斷擴大,對軟件技術的要求越來越高,結構化程序設計語言和結構化程序設計方法又無法滿足用戶需求的變化了,其缺點也日益顯露出來:代碼的可重用性差,可維護性差,穩定性差,難以實現。人的思維焦點通常是在于事物和實體,以及它們的屬性和活動,但實際應用中,要決定如何通過數據結構、變量和函數來實現這個應用程序卻是很困難的。于是面向對象語言應運而生。
5面向對象語言
雖然面向對象的思想可以追溯到六十年代,但是面向對象思想被普遍接受還是得益于面向對象語言的功勞。在眾多的面向對象語言當中,最為突出的就是C++語言。C++語言是在八十年代初由AT&T貝爾實驗室Bjarne Stroustrup在C語言的基礎上設計并實現的。C++語言繼承了C語言的所有優點,如簡潔性和高效性,同時引入了面向對象的思想,如類、封裝、繼承、多態等。像任何人類的自然語言一樣,C++語言提供一種表達思想和概念的方法,當問題變得大而復雜時,使用C++語言來解決問題將會比使用其它語言更加容易、更加靈活。
在Web技術的發展過程中,真正可以稱為計算機語言,并得到極大的普及的是Java語言。Java是面向對象的網絡語言,它的獨特的網絡特性包括:平臺獨立性、動態代碼下載、為多媒體功能而設計的多線程、為通過Internet快速傳送而設計的緊湊的代碼格式。Java程序不需要存儲在你的計算機上,而是存儲在中央網絡服務器。當你通過瀏覽器訪問到一個帶有Java小程序的Web頁面時,Java小程序就會自動被下載運行。用戶可以從任何一臺具有Java虛擬機的機器上訪問任何服務器上的Java程序。
6結語
計算機語言已經成為我們思維的一部分。計算機語言是朝著自然語言的方向發展,它的最終目標應該是成為人類與計算機之間的很自然的交流工具,人可以通過這樣的語言將自己所具有的知識,或者自己的思想、情感、愿望等表達給計算機。
參考文獻
[1] 蔣本珊.計算機組成原理(第2版)[M].北京:清華大學出版社,2008.
[2] 李英華. 計算機語言的發展[J].海軍工程學院學報,1986(3).