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