長沙市南雅中學 鄧宇昂
計算機語言發展探析
長沙市南雅中學 鄧宇昂
計算機語言作為人機交互的重要工具,在計算機發展史上具有舉足輕重的地位。然而計算機語言的發展與自然語言的發展一樣,經歷了幾個不同的時期,也有許多計算機語言被時代所拋棄。本文著重探究計算機語言的發展歷程,并希望通過對發展歷程的回顧,對未來的發展進行預測。
計算機;編程語言;發展趨勢;
隨著計算機技術及應用范圍的擴展,計算機語言自身也在迅速發展。但計算機在實際運用中面臨越來越復雜多樣的問題,并不是依靠計算機語言在種類和數量上的擴張就可以完全滿足的。軟件的開發、應用陷入危機狀態。開發具有更強符號處理功能的智能機,程序語言的發展產生新飛躍顯得特別重要。因此,探討計算機語言發展的歷史,并在其中尋找規律性的東西,對于當前的科技工作者來說,是一項艱苦而有意義的工作。
1.1 計算機語言的作用
計算機程序語言,是用來描述和實現計算過程的有規則的人工語言符號系統。它有相對于自然語言更強的精確性和適應性,用戶通過程序設計語言,把科學問題翻譯成解法,輸入計算機,進行運算,代替部分人力不及的復雜危險的工作,從而節省了人力、物力。從另一方面講,目前計算機硬件所從事的是一些繁瑣單調的算術和邏輯運算,僅限于描述性和斷定性的工作,控制功能較簡單機械,如果程序語言與計算機硬件及相關軟件結合的話,就能進行有效的信息處理,提高處理問題的能力。
1.2 計算機語言發展的初級階段
第一代計算機程序設計語言也稱機器語言。人們從CPU指令系統中,挑選出由0和1序列組成的二進制機器代碼,編成指令序列,由計算機去理解和執行。但是,機器語言序列太長,難記,又不直觀,難理解,程序生產效率低,任務繁重,限制了計算機的推廣使用。為了減輕編程的勞動強度,人們發明第二代計算機程序語言,也稱匯編語言。它用助記符號來表示機器指令的操作符和操作數,經過一個匯編程序將指令逐個翻譯成相應的機器指令后才能執行。從而使得人們不必花更多精力去記憶和查詢機器代碼地址,生產效率質量都有顯著提高。但是,匯編語言指令不能被計算機直接識別、理解和執行,編程強度仍很大,要熟悉計算機內部具體構造和熟記機器指令,這嚴重影響計算機的普及與推廣。
現代計算機語言建立在第一代計算機語言的基礎上,在便捷易學等方面都有了極大的提升,也為計算機的快速發展提供了良好的環境。下面本文將介紹兩種主流程序設計語言與一種流行的語言,希望通過對這三種語言的分析得出未來的發展趨勢。
2.1 C語言
C語言是一門結構化的程序設計語言,由三種基本結構組成:順序結構、選擇結構、循環結構。C語言是一門“面向過程”的程序設計語言,用C語言編寫程序解決問題的過程可以看作是對問題所包含數據進行加工處理的過程。用公式表達即為“程序=數據結構+算法”,即先完成組織并存儲要加工處理的數據問題;再用語句對數據進行加工處理。C語言在很多方面繼承和發揚了許多高級程序設計語言的特色,它提供了標準庫函數,允許用戶編寫自定義函數,通過函數之間不同層次的調用滿足自身的需要,移植性好;它提供了算術、賦值、關系、邏輯等運算,處理能力強;三種基本結構使得程序結構整齊精練;語句簡練,書寫靈活,運行效率高,既可用來開發大型系統軟件,還可開發應用軟件,具有強大的生命力。但是,由于指針的引入,在一定意義下影響到操作的安全性,運算符多,優先級復雜,對初學者造成了巨大的困難。
但總的來說,C語言作為廣泛使用的一種高級計算機語言,被程序員大量使用,在計算機語言的發展史上也有著舉足輕重的地位,可以說沒有C語言就沒有現代計算機語言。
2.2 J a v a語言
Java是1995年推出的一種典型的面向對象的程序設計語言,主要應用于互聯網、個人PC、數據中心、游戲控制臺、科學超級計算機。Java是面向網絡,通過它所提供的類庫,可以處理TCP/IP協議,可以通過URL地址在網絡上訪問其它對象,能較方便地與其他計算結點協同工作。Java程序語言需要經過編譯和解釋兩個過程后才能被電腦執行,它需要一個虛擬機作為機器與編譯程序之間的連接者,這個虛擬機是想象中的機器,它的實現需要通過在現實中的計算機上進行軟件模擬,即Java源程序經過編譯器編譯后變成虛擬機能夠理解的字節碼,虛擬機對字節碼進行解釋,虛擬機將字節碼發送給解釋器,解釋器將其翻譯成特定機器能夠理解的機器碼,然后進行運行。
Java的誕生是對傳統計算機模式的挑戰,對計算機軟件產業都產生了深遠的影響。目前,各種風格、各種類型的程序設計語言都在發展,其中以面向對象語言的發展最為迅速。但是,面向對象語言不能解決所有問題,它們也應吸收其它風格的語言的長處,成為以面向對象為主、兼顧其他風格的新型語言。
2.3 P y t h o n語言
Python是一種解釋型、面向對象、動態語義、語法優美的腳本語言,它支持現有的各種主流操作系統,它的源程序和二進制代碼可以免費獲得。Python語言本身只提供了一個編程語言所需功能的最小內核,其他許多豐富的功能都由擴展模塊實現。由于在設計時就考慮了擴展性,可以很方便地用C或者C++編寫Python的擴展模塊以添加新的功能,或者把Python解釋器自身嵌入到其他程序內部。正因為有以上特點,Python特別適用于混合語言編程開發。程序員可以充分利用腳本語言和系統編程語言兩者的優點,達到提高開發效率,增強程序的靈活性和交互性的目的。
Python語言近年來異軍突起,因其書寫方便、易學、語言簡練等特性,受到諸多程序員的喜愛,這可以大大降低程序設計的時間,讓程序員從大量的代碼中解脫出來。然而Python的不足之處在與不能編寫操作系統,但這點局限并非十分重要,因為很少有人需要去寫較為基層的操作系統。
2.4 J a v a和C的幾點區別
隨著技術的不斷發展,計算機語言也在不斷進步,上述幾類主流語言既有聯系,又有區別。以經典的C和Java為例,Java的出現是計算機信息交換的重要里程碑,對Internet的應用有很大的促進作用。和C語言相比,各有特點。其中很重要的一點是兩種語言的簡潔性,倘若一個程序需要用C寫1000行代碼,用Java語言100行就可以解決,這為程序員節省了大量的時間。這些高級程序之間,還存在很多細微的區別,其功能與應用有待于進一步的探討。
縱觀計算機語言的發展歷史,我們可以看出語句的簡練是一個非常重要的方向,所以未來計算機語言一定會朝著更加偏向自然語言的方向發展。近年來,語音識別技術的發展也給計算機語言的發展帶來了新希望,可以預測,在未來,大量的程序不需要專業的程序員編寫,用戶只需用語言表達出個人的需求,計算機將自動對自然語言進行識別,再將自然語言編譯為計算機是別的機器碼,最后完成程序設計工作。
自計算機問世起,人們一直致力于研制更好的程序設計語言,數量在不斷激增。隨著技術的發展,還會有新風格語言的出現,但機器語言的發展一定是朝著自然語言的方向,因為計算機的作用就是為人類服務,一切發展也應以適應人類習慣為目標。也只有這樣,計算機才會更便捷地為我們提供服務,才會為世界的發展提供新動力。
[1]范華,秦茂玲,張?。敢旵程序設計語言[J].計算機技術與發展,2008(6):64-66.
[2]陳斌.淺析Java語言程序設計[J].信息技術,2012(9):9.
[3]羅霄,任勇,山秀明.基于Python的混合語言編程及其實現[J].計算機應用與軟件,2004(12):17-18,112.
鄧宇昂,男,湖南省長沙市南雅中學。