潘威濤
摘 要:人們?nèi)粘I铍x不開各種軟件所提供的服務(wù),研究編程語言對更好地進行軟件開發(fā)具有重要意義。該文主要總結(jié)與分析了C、C++、Java、MATLAB等常用編程語言的特點和現(xiàn)狀,以及其在不同場景下的應(yīng)用,對初級編程者有一定指導意義。
關(guān)鍵詞:編程語言 軟件 應(yīng)用
中圖分類號:TP311.175 文獻標識碼:A 文章編號:1674-098X(2016)12(b)-0085-02
1 什么是編程語言
編程語言是用來定義計算機程序的形式語言,用來向計算機發(fā)出指令。計算機語言數(shù)量很多,每年都會產(chǎn)生大量新的編程語言。按層次來分,編程語言可分為3類:機器語言、匯編語言和高級語言。機器語言由機器指令集構(gòu)成,能夠直接被機器執(zhí)行。機器語言寫的程序存在不便于閱讀、難以記憶的問題。匯編語言本質(zhì)上也是直接對硬件操作,由于采用了助記符,相比機器語言更加方便書寫與閱讀。在高級語言中,將多條匯編程序語句合并成更簡潔的編程語句,同時自動完成一些如堆棧、寄存器分配管理等工作,更加方便程序員開發(fā)程序。
編程語言的出現(xiàn)可以說給人類社會快速發(fā)展提供了一個契機。目前編程已經(jīng)滲透于我們?nèi)粘I畹拿總€方面,我們所使用的電子設(shè)備、軟件服務(wù)中都運行著大量的程序。近年來,不僅是高科技產(chǎn)業(yè),傳統(tǒng)行業(yè)也在積極投入互聯(lián)網(wǎng)時代,網(wǎng)站、軟件等編程需求巨大。研究編程語言具有重要意義。分析各個編程語言的特點,能夠指導編程者選擇更適合任務(wù)的編程語言,提高開發(fā)效率。同時能夠?qū)幊坛鯇W者起到指導作用,以便選擇合適的學習路徑。相對于機器語言與匯編語言,日常編程任務(wù)更多選擇高級語言,該文主要討論高級語言的發(fā)展與特點。
2 高級語言發(fā)展簡史
目前已經(jīng)有數(shù)千種編程語言被發(fā)明,每年仍有大量新的編程語言誕生。我們一般認為1957年由John W.Backu研發(fā)的Fortran是世界上第一門高級編程語言。1957—1959年這段時間,是編程語言剛開始新興的時候,這個時候Fortran、Lisp、Cobol也就是編程語言的雛形出現(xiàn)。1972年,Dennis Ritchie在B語言的基礎(chǔ)上改良和發(fā)展,最終將其命名為C語言[1]。C語言作為一種經(jīng)典的編程語言,至今仍被廣泛使用。而之后貝爾實驗室又在C語言的基礎(chǔ)上推出了更強大的面向?qū)ο笳Z言C++。1991年和1993年,Python和Ruby語言也相繼被發(fā)明。1996年Sun公司發(fā)布了Java的第一個開發(fā)工具包,標志著Java[2]成為一種獨立的開發(fā)工具,此后Java一直是一種非常流行的編程語言。
據(jù)TIOBE編程語言社區(qū)發(fā)布的編程語言流行趨勢排行榜統(tǒng)計顯示(前部分節(jié)選如表1所示),2016年僅有兩種語言的增長率超過了1%,分別是Groovy和GO語言,可以發(fā)現(xiàn)谷歌的GO語言將成為發(fā)展最快的語言。從此榜單可以看出,目前Java、C、C++使用量排名前三,而Java語言也是以9%的差距大大領(lǐng)先于排名第二的C語言。
如圖1所示,在2003—2005年間,Java語言使用指數(shù)有明顯的下降,2006年有所回升,而在后來的幾年(2015年前)里依舊呈逐漸下降的趨勢。2015年以前C語言使用量較為穩(wěn)定(15%~20%),近兩年迅速下降至10%左右。C++語言在過去的10年中呈動態(tài)下降趨勢,2016年使用量占主流編程語言的6%左右。圖1中未統(tǒng)計MATLAB使用量,因為MATLAB并非軟件開發(fā)語言(圖片來源于TIOBE編程語言社區(qū))。
3 常用編程語言特點分析
3.1 C
C語言是一門標準化高的編程語言,適用于不同的計算機系統(tǒng),因為它具有較好的可移植性,所以成為了應(yīng)用非常廣泛的語言。C語言方便靈活,語言簡潔,它只有32個關(guān)鍵字,9種控制語句,運算符包含的范圍廣。所以,相較于其他的高級語言,C語言容易上手。但語法限制不嚴格,設(shè)計時比較自由的同時也使C語言被濫用。圖2展示了一個C語言編程的常見錯誤,在if語句后誤加了一個分號,此時不管是否'a>b',程序運行輸出都是'a>b'。C語言可以進行系統(tǒng)程序的編寫,比如UNIX就是由其編寫的。C語言不僅是高級語言,而且還可以像匯編語言一樣對物理內(nèi)存、硬件直接進行訪問與操作,有時因為操作不當也會造成嚴重的錯誤。
3.2 C++
1983年,貝爾實驗室將改良后的C語言命名為C++,這門語言在保留C語言大部分設(shè)定的基礎(chǔ)上增加了面向?qū)ο骩3]。面向?qū)ο蠛诵母拍钍穷惻c對象,類就是一個由屬性相同的對象組成的抽象集合,而對象是類的具體實例。C++語言可以直接以類為模板定義出若干個對象,所以面向?qū)ο蠹夹g(shù)使重用數(shù)據(jù)、代碼變得更加便捷。相比C語言,C++語言更適合開發(fā)大型軟件,許多系統(tǒng)支撐軟件和應(yīng)用程序都是由C++編寫的。C++運行速度比C慢,和C一樣都存在語法的濫用。
3.3 Java
Java語言的前身是由Sun公司在C++基礎(chǔ)上改造出的Oak語言。Oak語言在經(jīng)過許多年的修改后最終成為了現(xiàn)在的Java語言。與C++一樣,Java同樣是個面向?qū)ο蟮木幊陶Z言,它的數(shù)據(jù)庫操作強大于前者,并且C++中不常用的特征都被刪掉,使得Java更容易上手。Java的一項優(yōu)點是它具有很好的安全性,因為它沒有指針,所以不會被程序員得到一些隱藏的信息,也令Java更加可靠。Java語言適合于大型項目的開發(fā),方便一些企業(yè)編寫程序,但它在較底層的開發(fā)項目中顯得不足。如今,由于Android系統(tǒng)的普及,作為其基本開發(fā)語言Java為更多人所知。
3.4 MATLAB
MATLAB也稱作矩陣實驗室[4],它包含了600多種數(shù)學計算所需的函數(shù),在矩陣運算、數(shù)值運算和數(shù)據(jù)處理等方面的功能很強大,是一個專業(yè)的數(shù)學軟件。它的語言簡單,語法也相對不嚴格。MATLAB語言編寫與我們?nèi)粘鴮懙姆绞绞呛芟竦?,易于上手。MATLAB的圖形功能也十分強大,它可以根據(jù)數(shù)據(jù)方便地做出各種圖形。MATLAB讀取文件功能也十分強大,能夠快捷、智能地讀取各種數(shù)值文件??傊?,在數(shù)學和科研領(lǐng)域上,MATLAB的便捷性和高效性是遠遠強于介紹的前3種語言的。
4 常用編程語言應(yīng)用場景分析
在學習編程或進行軟件開發(fā)時,編程者應(yīng)當根據(jù)自己的任務(wù)需要選擇合適的編程語言。C語言多運用于操作系統(tǒng)以及底層軟件的編寫,比如Unix、Linux和大家熟知的Windows系列等。與C語言相比,C++語言常運用于更上層的軟件編寫,比如QQ和迅雷等常見Windows桌面軟件,另一個很重要的應(yīng)用是大型游戲的開發(fā)。Java語言則更多運用在商業(yè)應(yīng)用軟件以及網(wǎng)站的開發(fā),使用J2EE(企業(yè)級Java開發(fā)框架)能夠快速、高效地完成大型商業(yè)網(wǎng)站開發(fā)任務(wù)。在目前流行的Android操作系統(tǒng)上,應(yīng)用軟件都是基于Java語言編寫的。相比于其他3種語言,MATLAB廣泛運用于科學計算編程,而不適合軟件開發(fā)。
參考文獻
[1] 倪瑞曉.C語言編程技術(shù)的分析研究[J].計算機技術(shù)與發(fā)展,2009,19(12):251-254.
[2] 賈俊奇.軟件開發(fā)下的JAVA語言[J].中國科技信息,2014 (13):133-134.
[3] 藍雯飛,陸際光,覃俊.C++面向?qū)ο蟪绦蛟O(shè)計中的多態(tài)性研究[J].計算機工程與應(yīng)用,2000,36(8):97-98.
[4] 潘大夫,汪渤,周志強.Matlab與C/C++混合編程技術(shù)研究[J].計算機工程與設(shè)計,2009(2):465-468.