時(shí)間:2022-05-03 20:00:28
開(kāi)篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇編程語(yǔ)言,希望這些內(nèi)容能成為您創(chuàng)作過(guò)程中的良師益友,陪伴您不斷探索和進(jìn)步。
編程語(yǔ)言俗稱“計(jì)算機(jī)語(yǔ)言”,種類非常的多,總的來(lái)說(shuō)可以分成機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言三大類。電腦每做的一次動(dòng)作,一個(gè)步驟,都是按照計(jì)算機(jī)語(yǔ)言編好的程序來(lái)執(zhí)行的。程序是計(jì)算機(jī)執(zhí)行的指令集合,而程序全部都是用我們所掌握的語(yǔ)言來(lái)編寫的。所以人們要控制計(jì)算機(jī),一定要通過(guò)計(jì)算機(jī)語(yǔ)言向計(jì)算機(jī)發(fā)出命令。類型是編程語(yǔ)言理論的核心組織原則,本書中,作者通過(guò)使用類型理論為這些語(yǔ)言提供了一個(gè)全新的視角。
全書分為18個(gè)部分,共50章:第1部分 判定和規(guī)則,含第1-3章:1.語(yǔ)法對(duì)象;2.感應(yīng)定義;3.假設(shè)與一般性判斷。第2部分 靜力學(xué)和動(dòng)力學(xué),含第4-7章:4.靜態(tài)類型變量;5.動(dòng)態(tài)類型變量;6.變量的類型安全;7.動(dòng)態(tài)評(píng)估。第3部分 函數(shù)類型,含第8-10章:8.函數(shù)的定義和值;9.Gdel的T介紹;10.Plotkin的PCF介紹。第4部分 有限數(shù)據(jù)類型,含第11-14章:11.積類型;12.和類型;13.模式匹配;14.泛型編程。第5部分 無(wú)限數(shù)據(jù)類型,含第15-16章:15.感應(yīng)及傳導(dǎo)類型;16.遞歸類型變量。第6部分 動(dòng)力學(xué)類型,含第17-19章:17.非類型化λ演算;18.動(dòng)態(tài)類型變量;19.混合類型變量。第7部分 變量類型,含第20-22章:20.Girard的F系統(tǒng);21.摘要類型;22.構(gòu)造函數(shù)和種類。第8部分 亞型,含第23-24章:23.亞型;24.單種。第9部分 類和方法,含第25-26章:25.動(dòng)態(tài)調(diào)度;26.繼承。第10部分 例外和延續(xù),含第27-29章:27.堆棧控制;28.例外;29.繼續(xù)。第11部分 含第30-31章:30.建設(shè)性邏輯;31.經(jīng)典邏輯。第12部分 符號(hào),含第32-34章:32.符號(hào);33.流體綁定;34.動(dòng)態(tài)分級(jí)。第13部分 狀態(tài),含第35-36章:35.現(xiàn)代化語(yǔ)言;36.分配參考。第14部分 懶惰,含第37-38章:37.懶惰評(píng)價(jià);38.極化。第15部分 并行,含第39-40章:39.嵌套并行;40.未來(lái)及預(yù)測(cè)。第16部分 并發(fā)式語(yǔ)言,含第41-43章:41.流程積分;42.并發(fā)式語(yǔ)言;43.分布式語(yǔ)言。第17部分 模塊化,含第44-46章:44.組件;45.抽象類型和類型類;46.層次結(jié)構(gòu)和參數(shù)。第18部分 推理方程式,含第47-50章:47.T的推理方程式;48.PCF的推理方程式;49.參數(shù)化;50.過(guò)程等價(jià)。
作者Robert Harper現(xiàn)任職于賓夕法尼亞的卡內(nèi)基 - 梅隆大學(xué),他的研究興趣主要集中在類型理論,證明論和范疇論應(yīng)用到編程語(yǔ)言的語(yǔ)義和實(shí)現(xiàn)。發(fā)表的論文包括正確編譯多態(tài)性與動(dòng)態(tài)類型、ACM研究:高效的緩存算法功能、結(jié)構(gòu)和計(jì)算機(jī)程序的效率等;參與的講座有美國(guó)印第安納大學(xué)計(jì)算機(jī)科學(xué)系特聘講座、LICS/ MFPS聯(lián)席會(huì)議等。
本書通過(guò)類型理論提供了編程語(yǔ)言基本知識(shí)的新觀點(diǎn)。大多數(shù)教科書強(qiáng)調(diào)分類,而本書強(qiáng)調(diào)遺傳學(xué)這一新的視角,可擴(kuò)展的理論框架有直接的實(shí)際應(yīng)用。讀者僅需要初等數(shù)學(xué)的知識(shí)便可閱讀此書。本書適合編程理論、計(jì)算機(jī)程序方面的研究人員、研究生閱讀參考。
李亞寧,碩士研究生
(中國(guó)科學(xué)院自動(dòng)化研究所)
Li Yaning, Master
(Institute of Automation,CAS)
關(guān)鍵詞:編程語(yǔ)言 軟件 應(yīng)用
中圖分類號(hào):TP311.175 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2016)12(b)-0085-02
1 什么是編程語(yǔ)言
編程語(yǔ)言是用來(lái)定義計(jì)算機(jī)程序的形式語(yǔ)言,用來(lái)向計(jì)算機(jī)發(fā)出指令。計(jì)算機(jī)語(yǔ)言數(shù)量很多,每年都會(huì)產(chǎn)生大量新的編程語(yǔ)言。按層次來(lái)分,編程語(yǔ)言可分為3類:機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言由機(jī)器指令集構(gòu)成,能夠直接被機(jī)器執(zhí)行。機(jī)器語(yǔ)言寫的程序存在不便于閱讀、難以記憶的問(wèn)題。匯編語(yǔ)言本質(zhì)上也是直接對(duì)硬件操作,由于采用了助記符,相比機(jī)器語(yǔ)言更加方便書寫與閱讀。在高級(jí)語(yǔ)言中,將多條匯編程序語(yǔ)句合并成更簡(jiǎn)潔的編程語(yǔ)句,同時(shí)自動(dòng)完成一些如堆棧、寄存器分配管理等工作,更加方便程序員開(kāi)發(fā)程序。
編程語(yǔ)言的出現(xiàn)可以說(shuō)給人類社會(huì)快速發(fā)展提供了一個(gè)契機(jī)。目前編程已經(jīng)滲透于我們?nèi)粘I畹拿總€(gè)方面,我們所使用的電子設(shè)備、軟件服務(wù)中都運(yùn)行著大量的程序。近年來(lái),不僅是高科技產(chǎn)業(yè),傳統(tǒng)行業(yè)也在積極投入互聯(lián)網(wǎng)時(shí)代,網(wǎng)站、軟件等編程需求巨大。研究編程語(yǔ)言具有重要意義。分析各個(gè)編程語(yǔ)言的特點(diǎn),能夠指導(dǎo)編程者選擇更適合任務(wù)的編程語(yǔ)言,提高開(kāi)發(fā)效率。同時(shí)能夠?qū)幊坛鯇W(xué)者起到指導(dǎo)作用,以便選擇合適的學(xué)習(xí)路徑。相對(duì)于機(jī)器語(yǔ)言與匯編語(yǔ)言,日常編程任務(wù)更多x擇高級(jí)語(yǔ)言,該文主要討論高級(jí)語(yǔ)言的發(fā)展與特點(diǎn)。
2 高級(jí)語(yǔ)言發(fā)展簡(jiǎn)史
目前已經(jīng)有數(shù)千種編程語(yǔ)言被發(fā)明,每年仍有大量新的編程語(yǔ)言誕生。我們一般認(rèn)為1957年由John W.Backu研發(fā)的Fortran是世界上第一門高級(jí)編程語(yǔ)言。1957―1959年這段時(shí)間,是編程語(yǔ)言剛開(kāi)始新興的時(shí)候,這個(gè)時(shí)候Fortran、Lisp、Cobol也就是編程語(yǔ)言的雛形出現(xiàn)。1972年,Dennis Ritchie在B語(yǔ)言的基礎(chǔ)上改良和發(fā)展,最終將其命名為C語(yǔ)言[1]。C語(yǔ)言作為一種經(jīng)典的編程語(yǔ)言,至今仍被廣泛使用。而之后貝爾實(shí)驗(yàn)室又在C語(yǔ)言的基礎(chǔ)上推出了更強(qiáng)大的面向?qū)ο笳Z(yǔ)言C++。1991年和1993年,Python和Ruby語(yǔ)言也相繼被發(fā)明。1996年Sun公司了Java的第一個(gè)開(kāi)發(fā)工具包,標(biāo)志著Java[2]成為一種獨(dú)立的開(kāi)發(fā)工具,此后Java一直是一種非常流行的編程語(yǔ)言。
據(jù)TIOBE編程語(yǔ)言社區(qū)的編程語(yǔ)言流行趨勢(shì)排行榜統(tǒng)計(jì)顯示(前部分節(jié)選如表1所示),2016年僅有兩種語(yǔ)言的增長(zhǎng)率超過(guò)了1%,分別是Groovy和GO語(yǔ)言,可以發(fā)現(xiàn)谷歌的GO語(yǔ)言將成為發(fā)展最快的語(yǔ)言。從此榜單可以看出,目前Java、C、C++使用量排名前三,而Java語(yǔ)言也是以9%的差距大大領(lǐng)先于排名第二的C語(yǔ)言。
如圖1所示,在2003―2005年間,Java語(yǔ)言使用指數(shù)有明顯的下降,2006年有所回升,而在后來(lái)的幾年(2015年前)里依舊呈逐漸下降的趨勢(shì)。2015年以前C語(yǔ)言使用量較為穩(wěn)定(15%~20%),近兩年迅速下降至10%左右。C++語(yǔ)言在過(guò)去的10年中呈動(dòng)態(tài)下降趨勢(shì),2016年使用量占主流編程語(yǔ)言的6%左右。圖1中未統(tǒng)計(jì)MATLAB使用量,因?yàn)镸ATLAB并非軟件開(kāi)發(fā)語(yǔ)言(圖片來(lái)源于TIOBE編程語(yǔ)言社區(qū))。
3 常用編程語(yǔ)言特點(diǎn)分析
3.1 C
C語(yǔ)言是一門標(biāo)準(zhǔn)化高的編程語(yǔ)言,適用于不同的計(jì)算機(jī)系統(tǒng),因?yàn)樗哂休^好的可移植性,所以成為了應(yīng)用非常廣泛的語(yǔ)言。C語(yǔ)言方便靈活,語(yǔ)言簡(jiǎn)潔,它只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,運(yùn)算符包含的范圍廣。所以,相較于其他的高級(jí)語(yǔ)言,C語(yǔ)言容易上手。但語(yǔ)法限制不嚴(yán)格,設(shè)計(jì)時(shí)比較自由的同時(shí)也使C語(yǔ)言被濫用。圖2展示了一個(gè)C語(yǔ)言編程的常見(jiàn)錯(cuò)誤,在if語(yǔ)句后誤加了一個(gè)分號(hào),此時(shí)不管是否'a>b',程序運(yùn)行輸出都是'a>b'。C語(yǔ)言可以進(jìn)行系統(tǒng)程序的編寫,比如UNIX就是由其編寫的。C語(yǔ)言不僅是高級(jí)語(yǔ)言,而且還可以像匯編語(yǔ)言一樣對(duì)物理內(nèi)存、硬件直接進(jìn)行訪問(wèn)與操作,有時(shí)因?yàn)椴僮鞑划?dāng)也會(huì)造成嚴(yán)重的錯(cuò)誤。
3.2 C++
1983年,貝爾實(shí)驗(yàn)室將改良后的C語(yǔ)言命名為C++,這門語(yǔ)言在保留C語(yǔ)言大部分設(shè)定的基礎(chǔ)上增加了面向?qū)ο骩3]。面向?qū)ο蠛诵母拍钍穷惻c對(duì)象,類就是一個(gè)由屬性相同的對(duì)象組成的抽象集合,而對(duì)象是類的具體實(shí)例。C++語(yǔ)言可以直接以類為模板定義出若干個(gè)對(duì)象,所以面向?qū)ο蠹夹g(shù)使重用數(shù)據(jù)、代碼變得更加便捷。相比C語(yǔ)言,C++語(yǔ)言更適合開(kāi)發(fā)大型軟件,許多系統(tǒng)支撐軟件和應(yīng)用程序都是由C++編寫的。C++運(yùn)行速度比C慢,和C一樣都存在語(yǔ)法的濫用。
3.3 Java
Java語(yǔ)言的前身是由Sun公司在C++基礎(chǔ)上改造出的Oak語(yǔ)言。Oak語(yǔ)言在經(jīng)過(guò)許多年的修改后最終成為了現(xiàn)在的Java語(yǔ)言。與C++一樣,Java同樣是個(gè)面向?qū)ο蟮木幊陶Z(yǔ)言,它的數(shù)據(jù)庫(kù)操作強(qiáng)大于前者,并且C++中不常用的特征都被刪掉,使得Java更容易上手。Java的一項(xiàng)優(yōu)點(diǎn)是它具有很好的安全性,因?yàn)樗鼪](méi)有指針,所以不會(huì)被程序員得到一些隱藏的信息,也令Java更加可靠。Java語(yǔ)言適合于大型項(xiàng)目的開(kāi)發(fā),方便一些企業(yè)編寫程序,但它在較底層的開(kāi)發(fā)項(xiàng)目中顯得不足。如今,由于Android系統(tǒng)的普及,作為其基本開(kāi)發(fā)語(yǔ)言Java為更多人所知。
3.4 MATLAB
MATLAB也稱作矩陣實(shí)驗(yàn)室[4],它包含了600多種數(shù)學(xué)計(jì)算所需的函數(shù),在矩陣運(yùn)算、數(shù)值運(yùn)算和數(shù)據(jù)處理等方面的功能很強(qiáng)大,是一個(gè)專業(yè)的數(shù)學(xué)軟件。它的語(yǔ)言簡(jiǎn)單,語(yǔ)法也相對(duì)不嚴(yán)格。MATLAB語(yǔ)言編寫與我們?nèi)粘鴮懙姆绞绞呛芟竦模子谏鲜帧ATLAB的圖形功能也十分強(qiáng)大,它可以根據(jù)數(shù)據(jù)方便地做出各種圖形。MATLAB讀取文件功能也十分強(qiáng)大,能夠快捷、智能地讀取各種數(shù)值文件。總之,在數(shù)學(xué)和科研領(lǐng)域上,MATLAB的便捷性和高效性是遠(yuǎn)遠(yuǎn)強(qiáng)于介紹的前3種語(yǔ)言的。
4 常用編程語(yǔ)言應(yīng)用場(chǎng)景分析
在學(xué)習(xí)編程或進(jìn)行軟件開(kāi)發(fā)時(shí),編程者應(yīng)當(dāng)根據(jù)自己的任務(wù)需要選擇合適的編程語(yǔ)言。C語(yǔ)言多運(yùn)用于操作系統(tǒng)以及底層軟件的編寫,比如Unix、Linux和大家熟知的Windows系列等。與C語(yǔ)言相比,C++語(yǔ)言常運(yùn)用于更上層的軟件編寫,比如QQ和迅雷等常見(jiàn)Windows桌面軟件,另一個(gè)很重要的應(yīng)用是大型游戲的開(kāi)發(fā)。Java語(yǔ)言則更多運(yùn)用在商業(yè)應(yīng)用軟件以及網(wǎng)站的開(kāi)發(fā),使用J2EE(企業(yè)級(jí)Java開(kāi)發(fā)框架)能夠快速、高效地完成大型商業(yè)網(wǎng)站開(kāi)發(fā)任務(wù)。在目前流行的Android操作系統(tǒng)上,應(yīng)用軟件都是基于Java語(yǔ)言編寫的。相比于其他3種語(yǔ)言,MATLAB廣泛運(yùn)用于科學(xué)計(jì)算編程,而不適合軟件開(kāi)發(fā)。
參考文獻(xiàn)
[1] 倪瑞曉.C語(yǔ)言編程技術(shù)的分析研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(12):251-254.
[2] 賈俊奇.軟件開(kāi)發(fā)下的JAVA語(yǔ)言[J].中國(guó)科技信息,2014 (13):133-134.
關(guān)鍵詞:編程語(yǔ)言;教學(xué);教學(xué)模式
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2007)02-0051-02
1引言
在計(jì)算機(jī)專業(yè)本、專科和非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)教學(xué)中,學(xué)校幾乎都設(shè)置了高級(jí)語(yǔ)言程序設(shè)計(jì)或數(shù)據(jù)庫(kù)管理語(yǔ)言的程序設(shè)計(jì)課程。與一些應(yīng)用軟件或工具軟件相比,編程課程的教學(xué)具有較大的靈活性,這使得學(xué)生掌握起來(lái)有一定困難,教師教學(xué)也有一定的難度。采用何種教學(xué)模式進(jìn)行教學(xué)就成為編程語(yǔ)言教學(xué)的一個(gè)關(guān)鍵。筆者經(jīng)過(guò)多年的教學(xué)實(shí)踐,總結(jié)出了編程語(yǔ)言教學(xué)的感性認(rèn)識(shí)、算法分析、代碼講授、功能變化的教學(xué)模式,這些在實(shí)際教學(xué)中收到了很好的效果。
2編程語(yǔ)言教學(xué)模式探討
在下面的討論中,以Java語(yǔ)言編寫查詢記錄的程序?yàn)槔M(jìn)行說(shuō)明。
2.1 感性認(rèn)識(shí)
這里的感性認(rèn)識(shí)是指先讓學(xué)生對(duì)要講授的程序有一個(gè)感性的認(rèn)識(shí)。即先運(yùn)行程序,顯示程序的運(yùn)行結(jié)果,讓學(xué)生了解程序的運(yùn)行界面、控件的布局、操作順序及整個(gè)程序的功能。使學(xué)生對(duì)要講授的程序有一個(gè)感性的認(rèn)識(shí),這對(duì)于理解算法及編程代碼都是非常有利的。
通過(guò)運(yùn)行界面,學(xué)生可以了解整個(gè)界面的布局,即各個(gè)控件的擺放位置及相互關(guān)系,之后在文本框輸入查詢條件(書名)并單擊“確定”按鈕后,即顯示出查詢結(jié)果,這讓學(xué)生了解操作順序并看到運(yùn)行的結(jié)果,同時(shí)也知道了整個(gè)程序的功能。
2.2 算法分析
根據(jù)上面演示的界面、操作順序及運(yùn)行結(jié)果,詳細(xì)分析程序的功能,在此基礎(chǔ)上,我們分別從界面設(shè)計(jì)、事件代碼兩個(gè)方面進(jìn)行算法分析,找出程序?qū)崿F(xiàn)的算法并畫出程序流程圖。
例如,對(duì)于查詢記錄程序,其界面設(shè)計(jì)的算法分析如下:由于是在窗口內(nèi)顯示界面,所以應(yīng)先創(chuàng)建一個(gè)窗口類Frame類的子類。在子類的構(gòu)造方法中創(chuàng)建標(biāo)簽、文本框、按鈕等對(duì)象;設(shè)計(jì)相應(yīng)的布局,通過(guò)面板等容器將這些對(duì)象添加到窗口中;添加諸如按鈕等對(duì)象事件的監(jiān)聽(tīng)。
對(duì)于在文本框中輸入書名,并單擊“確定”按鈕,處理按鈕事件的算法分析如下:到數(shù)據(jù)庫(kù)中查找滿足條件的記錄,如果沒(méi)找到就顯示相應(yīng)的信息,并重新輸入查找條件;如果找到了就將找到的記錄放在相應(yīng)的面板等容器中并顯示。
其他如“打印”和“退出”等按鈕事件處理算法按相應(yīng)的要求給出。
根據(jù)上面的算法分析,畫出程序的流程圖如圖1所示。
圖1程序流程
對(duì)上面的流程圖教師要進(jìn)行詳盡的講解,使學(xué)生真正了解程序的算法,這對(duì)后面書寫程序代碼非常重要。因?yàn)榇a的編寫就是將算法變成能運(yùn)行的程序。
因?yàn)樵S多程序可以有多種算法,在教師講授自己的算法之前,可先讓學(xué)生寫出自己對(duì)這個(gè)問(wèn)題的算法分析(這就要求學(xué)生要事先預(yù)習(xí)教學(xué)內(nèi)容)并畫出流程圖,再對(duì)學(xué)生的算法進(jìn)行簡(jiǎn)單評(píng)價(jià)。
2.3 代碼講授
根據(jù)上面的算法分析,教師可采用下面兩種方式講授程序代碼:一種是逐條給出并在講解過(guò)程中啟發(fā)學(xué)生如何寫代碼,這時(shí)可以啟發(fā)學(xué)生思考要想完成算法的某一功能應(yīng)如何給出代碼。教師可以先讓學(xué)生給出代碼,然后按學(xué)生給出的代碼演示運(yùn)行結(jié)果,看是否達(dá)到了算法的要求,如果達(dá)到要求應(yīng)給予積極的評(píng)價(jià);沒(méi)有則應(yīng)和學(xué)生一起分析問(wèn)題出現(xiàn)在哪里,找出正確的思路,直至給出正確的代碼。學(xué)生給出的代碼可能會(huì)有多種,可選擇有代表性的幾個(gè)進(jìn)行演示及分析,不要只講正確的代碼方案,不正確的代碼方案也可作為反例提醒同學(xué)們注意,這樣對(duì)于鼓勵(lì)學(xué)生參與互動(dòng)教學(xué)有積極的作用。另一種是代碼全部給出,之后按算法要求講解每一條語(yǔ)句的作用,再講解每一段的作用并解釋它實(shí)現(xiàn)了算法的哪一個(gè)功能。前者占用課堂時(shí)間較長(zhǎng),但對(duì)啟發(fā)學(xué)生的編程思維有好處;后者占用課堂時(shí)間短,提高了課堂效率,但學(xué)生掌握程序代碼效果不如前者。教師在教學(xué)中可根據(jù)學(xué)生情況、教學(xué)內(nèi)容的復(fù)雜程度及課時(shí)數(shù)進(jìn)行選擇。在講解過(guò)程中教師一定要結(jié)合算法,注意講清每條語(yǔ)句或每一段代碼能完成算法中的哪一步。在此過(guò)程中,為了說(shuō)明某條語(yǔ)句或某段代碼的作用,可邊講解邊演示其運(yùn)行的結(jié)果,這樣效果會(huì)更好。
2.4 功能變化
在講解清楚上面的程序之后,可對(duì)程序的語(yǔ)句或程序段進(jìn)行修改,例如刪除某些語(yǔ)句、修改某些語(yǔ)句,并演示刪除或修改變化后的運(yùn)行效果,使學(xué)生加深對(duì)某些語(yǔ)句或程序段功能的理解,以拓展本程序的知識(shí)點(diǎn)。同時(shí)教師要注意鼓勵(lì)學(xué)生大膽探索新的算法,對(duì)于雖不完美,但經(jīng)過(guò)指導(dǎo)也能實(shí)現(xiàn)程序功能的算法要給予積極的表?yè)P(yáng)和肯定,推崇學(xué)生自己動(dòng)腦、動(dòng)手進(jìn)行程序設(shè)計(jì)與修改是非常必要的。
3結(jié)束語(yǔ)
以上只是作者在教學(xué)中總結(jié)出的一點(diǎn)體會(huì),在以往的教學(xué)中應(yīng)用這種模式進(jìn)行實(shí)踐并收到了較好的效果。學(xué)生不但學(xué)會(huì)了編程語(yǔ)言,同時(shí)也學(xué)會(huì)了編程思想及編程方法。在畢業(yè)設(shè)計(jì)中,學(xué)生做出了較好的管理信息系統(tǒng),并在“大學(xué)生科研訓(xùn)練計(jì)劃”的信息系統(tǒng)開(kāi)發(fā)中取得了較好的成績(jī)。當(dāng)然,編程語(yǔ)言教學(xué)模式多種多樣,許多同行都有自己的優(yōu)秀的教學(xué)模式,筆者會(huì)在今后進(jìn)一步學(xué)習(xí)和吸取這些經(jīng)驗(yàn),不斷提高自己的教學(xué)效果和水平。
參考文獻(xiàn):
[1]印F.Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.
[2]耿祥義.Java2實(shí)用教程[M].北京:清華大學(xué)出版社,2004.
[3]Bruce Eckel .Thinking in Java(Third Edition)[M].北京:機(jī)械工業(yè)出版社,2004.
[4]Harvey M.Deitel,Paul J.Deitel .Java大學(xué)教程[M].北京:電子工業(yè)出版社,2004.
關(guān)鍵詞:高校;德?tīng)柗疲痪幊陶Z(yǔ)言;課程安排;計(jì)算機(jī)專業(yè)
1概述
據(jù)了解,2005年后,所有綜合類和理工類的高校都開(kāi)設(shè)了計(jì)算機(jī)類專業(yè),因此造成了該專業(yè)畢業(yè)生人數(shù)急劇增多,就業(yè)市場(chǎng)嚴(yán)重飽和。同時(shí),由于高校的人才培養(yǎng)計(jì)劃趕不上計(jì)算機(jī)技術(shù)日新月異的變化,造成了畢業(yè)生走向職場(chǎng)后,專業(yè)能力難以達(dá)到用人單位的要求,因此造成部分學(xué)生就業(yè)難的局面。根據(jù)四川省教育廳的2014屆就業(yè)質(zhì)量報(bào)告,用人單位選聘應(yīng)屆畢業(yè)生時(shí)最為看重的是專業(yè)知識(shí)(63.98%),其中大多數(shù)單位表示愿為符合要求的畢業(yè)生開(kāi)出可觀的薪資,但從實(shí)際的就業(yè)率和就業(yè)質(zhì)量來(lái)看,情況并不樂(lè)觀。為了著手解決此問(wèn)題,應(yīng)該從源頭來(lái)考慮,反觀高校對(duì)于專業(yè)課程安排的合理性,同時(shí)應(yīng)該不斷地對(duì)人才培養(yǎng)方案進(jìn)行修改,以提高畢業(yè)生的就業(yè)質(zhì)量。就計(jì)算機(jī)類專業(yè)所開(kāi)發(fā)的編程語(yǔ)言為研究對(duì)象,綜合考慮編程語(yǔ)言的就業(yè)情況、高校編程語(yǔ)言的開(kāi)設(shè)情況、編程社區(qū)編程語(yǔ)言排名情況,并應(yīng)用德?tīng)柗品椒ǎ―elphi),建立編程語(yǔ)言的綜合評(píng)價(jià)模型,從而為高校開(kāi)設(shè)編程語(yǔ)言課程提供參考意見(jiàn)。
2編程語(yǔ)言的評(píng)價(jià)
2.1高校開(kāi)設(shè)編程語(yǔ)言的影響因素
(1)編程語(yǔ)言的就業(yè)情況收集了北京與廣州兩地各個(gè)編程語(yǔ)言的專業(yè)人員的實(shí)際薪資(數(shù)據(jù)來(lái)源于各大線上招聘平臺(tái))。從薪資情況可以宏觀地看出市場(chǎng)的供給關(guān)系,從而得出現(xiàn)階段對(duì)不同編程語(yǔ)言的專業(yè)人員的需求程度。根據(jù)圖1,不難看出北京地區(qū)的薪資水平大體大于廣州地區(qū)。同時(shí),Swift、Python、SQL、C++相關(guān)崗位的平均薪資水平位列前4。而較為冷門的統(tǒng)計(jì)方面的R語(yǔ)言則位居倒數(shù)。(2)代表性高校編程語(yǔ)言開(kāi)設(shè)情況收集了全國(guó)頂尖的高校的計(jì)算機(jī)專業(yè)培養(yǎng)方案中(高校排名根據(jù)2016年中國(guó)科學(xué)評(píng)價(jià)研究中心等機(jī)構(gòu)的本科專業(yè)排行榜)對(duì)于各編程語(yǔ)言課程的開(kāi)設(shè)情況。為了全面地反映問(wèn)題,選取了不同層次的較具代表性的4所大學(xué)進(jìn)行比較。如表1所示。清華大學(xué)與暨南大學(xué)對(duì)于主流的編程語(yǔ)言的課程安排最為全面,且高校大多都開(kāi)設(shè)了較為基礎(chǔ)的,像C++,SQL等語(yǔ)言。然而,大多卻并未開(kāi)設(shè)像薪資可觀的Swift、Python等語(yǔ)言的相關(guān)課程。(3)TIOBE編程社區(qū)的編程語(yǔ)言排行TIOBE編程社區(qū)由荷蘭Eindhoven的TIOBE公司創(chuàng)立和維護(hù),根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量等指標(biāo)對(duì)各個(gè)編程語(yǔ)言進(jìn)行熱度的排行。從2016年該社區(qū)的最新一期編程語(yǔ)言排行榜來(lái)看,Java、C、C++、Python為2016年最受歡迎的編程語(yǔ)言。相較2015年該機(jī)構(gòu)出具的數(shù)據(jù)來(lái)看,C語(yǔ)言的排行下滑明顯,進(jìn)步最多的為GoogleGo,其他成長(zhǎng)顯著的語(yǔ)言還包括Dart和Perl。如表2所示。
2.2基于德?tīng)柗品椒ǖ木幊陶Z(yǔ)言評(píng)價(jià)
根據(jù)德?tīng)柗品ǖ囊蠛脱芯磕康模_定了20位專家并對(duì)其進(jìn)行專訪,第一輪評(píng)分由專家主觀從以下3個(gè)角度為不同的計(jì)算機(jī)語(yǔ)言分別進(jìn)行評(píng)分(滿分100)。在第二輪評(píng)分之前,各位專家閱讀了相關(guān)資料、以及第一輪評(píng)分的匿名結(jié)果后,再進(jìn)行綜合判斷。兩輪評(píng)分后,收集相關(guān)數(shù)據(jù),隨機(jī)挑選了6位專家的3個(gè)評(píng)價(jià)方面的評(píng)分結(jié)果,并采用Excel2010進(jìn)行錄入并進(jìn)行相關(guān)數(shù)據(jù)的處理。如表3所示。在專家的調(diào)查結(jié)果中,Python、Swift、SQL等語(yǔ)言的相關(guān)崗位被認(rèn)為是就業(yè)前景較好的,這也與目前市場(chǎng)的現(xiàn)狀分析結(jié)果基本吻合。同時(shí),在對(duì)教務(wù)處排課人員、任職的教授的調(diào)查后,分析發(fā)現(xiàn)開(kāi)設(shè)較為基礎(chǔ)的計(jì)算機(jī)語(yǔ)言(C、C++、Java等)被認(rèn)為有較強(qiáng)的可操作性。不同的是,專家認(rèn)為用途廣泛的Python,JavaScript語(yǔ)言也同樣應(yīng)該被開(kāi)設(shè),對(duì)比高校開(kāi)課情況的調(diào)研后,我們認(rèn)為高校可能考慮到這些語(yǔ)言專業(yè)背景要求高、難度大,因此很少安排此類課程。在對(duì)于計(jì)算機(jī)語(yǔ)言流行度方面的評(píng)分中,除了主流的基礎(chǔ)語(yǔ)言外,VB和Linux的評(píng)分也位居前列。綜合以上3個(gè)方面,對(duì)10種主流編程語(yǔ)言進(jìn)行排行并加權(quán)計(jì)算其最終的得分,得出了就市場(chǎng)要求、可操作性、合理性3方面考慮的最應(yīng)學(xué)習(xí)的編程語(yǔ)言的排行。
3編程語(yǔ)言課程開(kāi)設(shè)的建議
根據(jù)以上的分析,C,C++,Java,VB等語(yǔ)言是本科生最應(yīng)學(xué)習(xí)的基礎(chǔ)的編程語(yǔ)言。考慮到前階段對(duì)于職業(yè)市場(chǎng)的調(diào)研等方面,高校應(yīng)該加強(qiáng)現(xiàn)階段較為熱門且緊缺專業(yè)人員的,像Swift、JavaScript、SQL等語(yǔ)言的課程安排,高校可以增設(shè)相關(guān)語(yǔ)言的選修課,并對(duì)學(xué)生更好地宣傳以求其認(rèn)識(shí)目前計(jì)算機(jī)語(yǔ)言的使用情況,提高畢業(yè)生在校學(xué)習(xí)的針對(duì)性以及走向崗位后的市場(chǎng)適應(yīng)力和競(jìng)爭(zhēng)力。運(yùn)用德?tīng)柗品?gòu)建編程語(yǔ)言的多角度評(píng)價(jià)體系的過(guò)程符合試驗(yàn)設(shè)計(jì)和科學(xué)程序的相關(guān)要求,結(jié)果綜合了專業(yè)性、實(shí)際性以及科學(xué)性,能夠?yàn)楦咝5挠?jì)算機(jī)編程語(yǔ)言的課程安排以及相關(guān)的研究提供依據(jù),同時(shí)也可以提高在校生對(duì)于編程語(yǔ)言的全方面認(rèn)識(shí)。
參考文獻(xiàn)
[1]王軍,田岳鳳,張俊龍,李瑋.德?tīng)柗品?gòu)建中醫(yī)學(xué)專業(yè)基礎(chǔ)模塊課程考核評(píng)價(jià)指標(biāo)體系[J].中國(guó)中醫(yī)藥現(xiàn)代遠(yuǎn)程教育,2014,(20).
[2]科技論文寫作常識(shí)———德?tīng)柗品╗J].中國(guó)護(hù)理管理,2013,(03).
[3]曉紅,何仲.Delphi法在護(hù)理研究中的應(yīng)用[J].中華護(hù)理教育,2005,2(1):6-8.
【關(guān)鍵詞】 編程語(yǔ)言 計(jì)算機(jī)知識(shí) 軟件開(kāi)發(fā) 軟件應(yīng)用
目前,計(jì)算機(jī)業(yè)內(nèi)流行的軟件編程語(yǔ)言有:C#、Java、PHP、C++、Visual Basic、Delphi、PowerBuilder等。編程的目的主要是為了解決問(wèn)題,解放現(xiàn)實(shí)的勞動(dòng)力,而現(xiàn)實(shí)的問(wèn)題都是可以用語(yǔ)言來(lái)描述的,將問(wèn)題用計(jì)算機(jī)語(yǔ)言來(lái)實(shí)現(xiàn),需要編寫計(jì)算機(jī)開(kāi)發(fā)程序。主要的途徑是對(duì)現(xiàn)實(shí)問(wèn)題進(jìn)行分析,用合理的數(shù)學(xué)模型來(lái)表達(dá),然后通過(guò)計(jì)算機(jī)程序語(yǔ)言來(lái)實(shí)現(xiàn)功能,例如:R、G、B3色份量來(lái)各表示一種顏色,對(duì)于顏色的處理被轉(zhuǎn)化為對(duì)R、G、B3個(gè)整數(shù)的處理。只要改變這3個(gè)整數(shù),就可以將其改變成另外一種顏色。
1.計(jì)算機(jī)常用的編程語(yǔ)言
C語(yǔ)言:該語(yǔ)言應(yīng)用廣泛,是所有計(jì)算機(jī)語(yǔ)言里最常用的編程語(yǔ)言,從開(kāi)始出現(xiàn)到現(xiàn)在已經(jīng)有40年的歷史,C語(yǔ)言具有很多優(yōu)點(diǎn),如:語(yǔ)法簡(jiǎn)潔、運(yùn)算符豐富、數(shù)據(jù)結(jié)構(gòu)類型豐富、代碼和數(shù)據(jù)分離的結(jié)構(gòu)化、語(yǔ)法要求不嚴(yán)格、功能強(qiáng)大等。C語(yǔ)言是具有兼容能力強(qiáng)的程序語(yǔ)言,移植起來(lái)非常容易,利用C語(yǔ)言為某種計(jì)算機(jī)寫的軟件可以用到另一種機(jī)器上去。如:如果為蘋果機(jī)寫的一個(gè)程序能夠方便地改為可以在IBMPC上運(yùn)行的程序。C語(yǔ)言的主要結(jié)構(gòu)成分是函數(shù)C的獨(dú)立子程序,編寫的程序語(yǔ)言比較容易維護(hù),并且容易實(shí)現(xiàn)。
C++:該語(yǔ)言是C語(yǔ)言的升級(jí),它幾乎包含了C語(yǔ)言的所有功能,在C語(yǔ)言的廣泛引用前提下,C++也應(yīng)用的非常廣泛,可以說(shuō)任何領(lǐng)域都可以使用,包括各種操作平臺(tái),這也決定了C++是一種最難學(xué)的編程語(yǔ)言,因?yàn)椋鼜?qiáng)大的功能背景下,使用起來(lái)非常的靈活多樣。實(shí)踐證明,如果掌握了C++,再學(xué)習(xí)其他編程語(yǔ)言的時(shí)候就會(huì)非常容易,因?yàn)樗灤┝藦挠布綄?duì)象的各個(gè)環(huán)節(jié),學(xué)完該語(yǔ)言以后就會(huì)對(duì)計(jì)算機(jī)語(yǔ)言有個(gè)深刻的認(rèn)識(shí)。
Java和C#:Java和C#都是出現(xiàn)在C語(yǔ)言之后,以面向?qū)ο鬄橹鞯恼Z(yǔ)言,Java語(yǔ)言是在充分吸收了C++的優(yōu)點(diǎn),摒棄了C++的一些缺點(diǎn)的基礎(chǔ)上誕生的,并且形成了具有自身特色的優(yōu)勢(shì),而C#則是在Java語(yǔ)言之后出現(xiàn)的,它更多地借鑒了Java的優(yōu)點(diǎn),同時(shí)增加了一些自己的特點(diǎn)。在一定意義上可以說(shuō),Java站在C++的肩膀上,而C#站在了Java的肩膀上。除了跨平臺(tái)以外,Java和C#相比沒(méi)有太多優(yōu)勢(shì),.NET可以控制迅雷,調(diào)用dll等,這個(gè)是Java很難做到的,雖然有JNI或第三方開(kāi)源程序,但是那些第三方不太成熟,而JNI則需要會(huì)寫VC代碼,很難做到。
Pascal語(yǔ)言。是計(jì)算機(jī)通用設(shè)計(jì)語(yǔ)言的一種,是高級(jí)程序語(yǔ)言,主要特點(diǎn)有:具有嚴(yán)格的結(jié)構(gòu)化形式、豐富的數(shù)據(jù)類型、較高的運(yùn)行效率和較快的糾錯(cuò)能力等。這些優(yōu)點(diǎn)決定了該語(yǔ)言能夠描述各種算法以及數(shù)據(jù)結(jié)構(gòu),另外,在應(yīng)用這種語(yǔ)言的過(guò)程中,能夠幫助編程者保持一個(gè)很好的習(xí)慣和設(shè)計(jì)風(fēng)格。
每一種語(yǔ)言都有其存在的理由,都有其獨(dú)特的優(yōu)勢(shì)和應(yīng)用范圍,編程人員在計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)過(guò)程中應(yīng)該以提升工作效率為基礎(chǔ),以運(yùn)效果為目標(biāo),選擇適合開(kāi)發(fā)項(xiàng)目的程序,選擇最適合的語(yǔ)言,達(dá)到提高工作效率,降低工作量的目的。
2.原則
2.1 整體結(jié)構(gòu)
開(kāi)發(fā)項(xiàng)目的整理結(jié)構(gòu)決定了用什么樣的開(kāi)發(fā)軟件,使用什么樣的編程語(yǔ)言,整個(gè)系統(tǒng)是由多個(gè)部分組成,并不是說(shuō)整個(gè)系統(tǒng)都必須要使用同一種編程語(yǔ)言進(jìn)行編寫,編程語(yǔ)言的選擇應(yīng)該依據(jù)項(xiàng)目功能而定。對(duì)于成本投入較大的操作,如:圖形渲染、密碼學(xué)、視頻處理以及信號(hào)處理等,程序員要認(rèn)真考慮,盡量用一些靜態(tài)類型的語(yǔ)言。
2.2 盡量使用最為熟悉的語(yǔ)言
熟練掌握的語(yǔ)言能夠運(yùn)用在開(kāi)發(fā)軟件方面的話,可以節(jié)省大量的時(shí)間,并且能夠?qū)浖こ添?xiàng)目時(shí)間表進(jìn)行準(zhǔn)確預(yù)測(cè),及時(shí)完工。此外,熟悉的語(yǔ)言可以創(chuàng)新,如,開(kāi)發(fā)的軟件是偏重復(fù)處理手工勞動(dòng)時(shí),就可以根據(jù)實(shí)際情況選擇簡(jiǎn)單、靈活的編程語(yǔ)言,尤其是選擇那些自身就具備相應(yīng)功能的編程語(yǔ)言。
2.3 語(yǔ)言的選擇要考慮是否支持平臺(tái)
支持平臺(tái)也是在編程語(yǔ)言選擇過(guò)程中需要考慮的因素。
例如:在瀏覽器中運(yùn)行的程序語(yǔ)言,根據(jù)語(yǔ)言是否適應(yīng)就可以有選擇的使用一些語(yǔ)言。平臺(tái)是一個(gè)大環(huán)境,所有操作都應(yīng)該適應(yīng)于平臺(tái),一些程序開(kāi)發(fā)過(guò)程中,程序語(yǔ)言的格式?jīng)Q定了要涉及大量的位操作,此時(shí),要充分考慮大量的位操作是否給軟件開(kāi)發(fā)帶來(lái)困難,是否可以避免大量的工作,如果必須要進(jìn)行大量的位操作,那就應(yīng)該選擇那些具有容易位操作而且可以提供合適數(shù)據(jù)類型等特點(diǎn)的編程語(yǔ)言。同時(shí),在一些特殊領(lǐng)域,程序員應(yīng)該使用專業(yè)的編程語(yǔ)言,因?yàn)檫@些程序語(yǔ)言具有很強(qiáng)的針對(duì)性,使用起來(lái)既能夠節(jié)省很多的工作時(shí)間,還可以防止編程出現(xiàn)較大的失誤。
3.結(jié)語(yǔ)
編程語(yǔ)言決定了軟件的開(kāi)發(fā)的效果,軟件開(kāi)發(fā)的項(xiàng)目和環(huán)境限制了程序語(yǔ)言的使用,恰當(dāng)?shù)木幊陶Z(yǔ)言,能夠大大提高編程效率和開(kāi)發(fā)軟件的質(zhì)量,能夠保證編程工作的順利開(kāi)展,能夠使工作事半功倍。因此,在編程過(guò)程中,編程人員應(yīng)加強(qiáng)學(xué)習(xí),不斷吸收新知識(shí),對(duì)各類編程語(yǔ)言的特點(diǎn)進(jìn)行深入了解,以尋找出最合適的編程語(yǔ)言。
參考文獻(xiàn)
[1]陳學(xué)進(jìn).用ADO訪問(wèn)WEB數(shù)據(jù)庫(kù)[J].安徽工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版)
【Abstract】With the widespread use of computers, Java language has been widely used. Java language can be used in a variety of operating platforms, and it has source codes that can be expediently used by developers. Therefore, this article will analyze the characteristics of Java language and programming language technology, and discuss the application of Java language in software development.
【關(guān)鍵詞】軟件開(kāi)發(fā);Java編程語(yǔ)言;應(yīng)用
【Keywords】software development; Java programming language; application
【中圖分類號(hào)】TP31 【文獻(xiàn)標(biāo)志碼】A 【文章編號(hào)】1673-1069(2017)05-0137-02
1 引言
Java語(yǔ)言是根據(jù)C++語(yǔ)言的基礎(chǔ)上進(jìn)一步發(fā)展的,雖然現(xiàn)在很多游戲軟件都是利用Android語(yǔ)言進(jìn)行開(kāi)發(fā)的,但是在整個(gè)市場(chǎng)中Java語(yǔ)言的使用依然比較多,因?yàn)槠渚哂辛己玫募嫒菪裕瑫r(shí)也具有開(kāi)放性的源代碼,經(jīng)過(guò)不斷的發(fā)展,逐漸取代了其他的編程語(yǔ)言,可見(jiàn)它使用價(jià)值是比較高的。
2 Java語(yǔ)言的特點(diǎn)
雖然Java語(yǔ)言是在C++語(yǔ)言上進(jìn)行發(fā)展的,但是兩者既存在著聯(lián)系也有不同,Java語(yǔ)言不僅具有C++語(yǔ)言的特點(diǎn),同時(shí)在發(fā)展的過(guò)程中也形成了自己的特點(diǎn),主要表現(xiàn)如下:
2.1 平立性
Java語(yǔ)言能夠在多種操作平臺(tái)上使用,它的兼容性非常好[1]。在實(shí)際的編程中,先進(jìn)行的是中間代碼的編譯,之后轉(zhuǎn)變成機(jī)器代碼,這些代碼都是計(jì)算機(jī)能夠識(shí)別的,所以,該語(yǔ)言才能在不同的平臺(tái)上操作,這也就是所說(shuō)的平立性。
2.2 多線程
多線程的特點(diǎn)是面向?qū)ο蟮恼Z(yǔ)言所具有的,這種面向?qū)ο笳Z(yǔ)言一般是在開(kāi)發(fā)網(wǎng)絡(luò)版本的軟件時(shí)使用。在進(jìn)行相關(guān)軟件開(kāi)發(fā)時(shí),要適合主要軟件的編程是否實(shí)現(xiàn)網(wǎng)絡(luò)之間的信息交互,就是為了滿足用戶的這種需求,這個(gè)特點(diǎn)進(jìn)一步提高了軟件的實(shí)用性。
2.3 面向?qū)ο?/p>
JAVA語(yǔ)言中的面向?qū)ο笳Z(yǔ)言具有三種明顯的特征:繼承、特征封裝和多臺(tái)。在進(jìn)行軟件開(kāi)發(fā)時(shí),利用Java語(yǔ)言進(jìn)行編程時(shí)就可以體現(xiàn)這三大特征。在這三大特征上進(jìn)行軟件的開(kāi)發(fā),更能體現(xiàn)編程的科學(xué)性、有效和完整性,從而實(shí)現(xiàn)軟件的使用性,這一點(diǎn)能夠充分的體現(xiàn)JAVA語(yǔ)言的優(yōu)越性。
2.4 可移植性
在使用Java語(yǔ)言進(jìn)行軟件開(kāi)發(fā)時(shí),還可以借助瀏覽器實(shí)現(xiàn)移植。可以將圖形、文體、圖像、代碼等實(shí)現(xiàn)移植,這一點(diǎn)充分突出了Java語(yǔ)言的可移植性,這一特點(diǎn)使Java語(yǔ)言得到了普遍的應(yīng)用。很多程序員在進(jìn)行軟件的開(kāi)發(fā)中基本上都使用Java語(yǔ)言,可見(jiàn)Java語(yǔ)言的應(yīng)用價(jià)值。
3 Java編程語(yǔ)言技術(shù)
3.1 Java中的Annotation技g
每一個(gè)編程語(yǔ)言都有自己的數(shù)據(jù)類型,所以,程序編寫人員在進(jìn)行軟件開(kāi)發(fā)的時(shí)候,要合理的使用Java語(yǔ)言。程序員只有熟練掌握J(rèn)ava語(yǔ)言中各種數(shù)據(jù)語(yǔ)法應(yīng)用,才能更好地實(shí)現(xiàn)軟件開(kāi)發(fā)的各種功能,將數(shù)據(jù)語(yǔ)法得到充分的應(yīng)用,進(jìn)而提高軟件開(kāi)發(fā)的效率[2]。Annotation是屬于JAVA語(yǔ)言中一種元素?cái)?shù)據(jù)語(yǔ)法,它的主要作用就是實(shí)現(xiàn)Java語(yǔ)言中的每個(gè)參數(shù)、變量、屬性等要素之間的關(guān)系。在進(jìn)行計(jì)算機(jī)軟件的開(kāi)發(fā)時(shí),利用java Annotation技術(shù),能夠讓用戶方便從每種元素的特點(diǎn)和屬性進(jìn)行操作,從而將Java語(yǔ)言中的參數(shù)、屬性和變量實(shí)現(xiàn)連接和整合。另外,在Annotation技術(shù)中Java beans語(yǔ)言是獨(dú)立在開(kāi)發(fā)平臺(tái)之外的控件體系,它的安全性和統(tǒng)一性比較高。所以,它能夠給程序員提供語(yǔ)言之外的其他數(shù)據(jù)。
3.2 Java中的Database Connectivity技術(shù)
進(jìn)行軟件開(kāi)發(fā)是一件非常復(fù)雜的工作,Java語(yǔ)言是進(jìn)行軟件開(kāi)發(fā)的一種編程工具,主要利用該語(yǔ)言實(shí)現(xiàn)軟件的功能。在進(jìn)行軟件開(kāi)發(fā)時(shí),還要與網(wǎng)絡(luò)版本一種數(shù)據(jù)庫(kù)軟件相結(jié)合,才能將軟件的整個(gè)功能實(shí)現(xiàn)。在實(shí)現(xiàn)數(shù)據(jù)庫(kù)之間相互連接的技術(shù)是JDBC,該技術(shù)能夠快速的統(tǒng)一訪問(wèn)多種數(shù)據(jù),之后為數(shù)據(jù)建立連接平臺(tái)。在計(jì)算機(jī)軟件的開(kāi)發(fā)中,利用Java Database Connectivity技術(shù)主要是實(shí)現(xiàn)數(shù)據(jù)庫(kù)與軟件功能實(shí)現(xiàn)相關(guān)的數(shù)據(jù)之間的連接,然后為開(kāi)發(fā)PC軟件提供數(shù)據(jù)的查詢,這樣可以方便數(shù)據(jù)庫(kù)后臺(tái)的管理工作[3]。另外,該語(yǔ)言也能為軟件開(kāi)發(fā)提供統(tǒng)一的抽象類和接口,這樣就可以對(duì)更加復(fù)雜和高級(jí)數(shù)據(jù)進(jìn)行管理和應(yīng)用了。在利用Java語(yǔ)言進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的過(guò)程中,一般都會(huì)使用JDBC技術(shù)進(jìn)行數(shù)據(jù)庫(kù)的連接。
3.3 Java語(yǔ)言中的Remote Method Invocation技術(shù)
Java語(yǔ)言是比較科學(xué)、完善的,它是一種比較嚴(yán)格的語(yǔ)言機(jī)制,這也是它在軟件開(kāi)發(fā)中被廣泛應(yīng)用的主要原因。Remote Method Invocation技術(shù)的主要用途就是通過(guò)對(duì)JAVA語(yǔ)言的對(duì)象和類進(jìn)行調(diào)整和應(yīng)用,從而對(duì)程序語(yǔ)言進(jìn)行分布式的管理。在進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的時(shí)候,該語(yǔ)言不僅能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的有效整合,同時(shí)也能對(duì)小型分布式的程序進(jìn)行相應(yīng)的調(diào)整,這樣才能提高整體程序的穩(wěn)定性、完整性和安全性。在利用Java語(yǔ)言進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)時(shí),Remote Method Invocation技術(shù)在整個(gè)開(kāi)發(fā)過(guò)程的作用比較重要,只有對(duì)該語(yǔ)言進(jìn)行合理的組織,才能更好地實(shí)現(xiàn)軟件中的基本功能。
4 Java語(yǔ)言在軟件開(kāi)發(fā)中的應(yīng)用
4.1 在多平臺(tái)中實(shí)現(xiàn)軟件的編寫
由于JAVA語(yǔ)言能夠在任何平臺(tái)進(jìn)行使用,這使程序員能夠更加靈活地進(jìn)行軟件開(kāi)發(fā),提高軟件開(kāi)發(fā)整個(gè)過(guò)程的
先進(jìn)性。每個(gè)軟件都具有一定的生命周期,它們都需要進(jìn)行設(shè)計(jì)、開(kāi)發(fā)和測(cè)試等環(huán)節(jié),這也是提高軟件生命力的重要過(guò)程。
4.2 基于可移植的特點(diǎn)提高游戲的效果
在開(kāi)發(fā)軟件中主要還是進(jìn)行游戲軟件的開(kāi)發(fā),以往開(kāi)發(fā)手機(jī)游戲軟件時(shí),都是在Android系統(tǒng)利用Android語(yǔ)言程序進(jìn)行編寫,但是由于Java語(yǔ)言具有很好的移植性,該語(yǔ)言也逐漸被應(yīng)用在開(kāi)發(fā)手機(jī)游戲軟件中,它能夠提高整個(gè)游戲的效果。另外軟件開(kāi)發(fā)與游戲開(kāi)發(fā)也存在不同,游戲的開(kāi)發(fā)不僅要實(shí)現(xiàn)某些功能,同時(shí)也要考慮游戲的場(chǎng)景效果。
4.3 利用多線程和面向?qū)ο髮?shí)現(xiàn)設(shè)計(jì)
Java語(yǔ)言所具有的多線程和面向?qū)ο蟮奶卣鳎粌H為程序員提供方便,同時(shí)也提高了編程的效率,增強(qiáng)了軟件的實(shí)用性。面對(duì)用戶對(duì)軟件越來(lái)越高的需求,使用Java語(yǔ)言進(jìn)行軟件開(kāi)發(fā),才能更好地滿足用戶對(duì)軟件功能的需求。Java語(yǔ)言能夠加入動(dòng)態(tài)畫面,調(diào)用圖像和圖形,還能添加聲音,這樣使程序變得更加豐富和生動(dòng)。
Java語(yǔ)言的使用范圍非常廣,隨著計(jì)算機(jī)相關(guān)技術(shù)的不斷發(fā)展,在互聯(lián)網(wǎng)系統(tǒng)管理方面、企業(yè)內(nèi)部開(kāi)發(fā)軟件方面、多媒體信息整理等方面都有使用Java語(yǔ)言進(jìn)行編輯。從Java語(yǔ)言具有的特征來(lái)看,該語(yǔ)言的使用很具有發(fā)展前景。
【參考文獻(xiàn)】
【1】周寶亮,王敏.計(jì)算機(jī)軟件開(kāi)發(fā)中JAVA編程語(yǔ)言的應(yīng)用[J].電子技術(shù)與軟件工程,2017(03):61-62.
doi:10.11772/j.issn.10019081.2013.07.1885
摘 要:
P2P分布式哈希表(DHT)協(xié)議本身簡(jiǎn)潔并且易于理解,但是命令式語(yǔ)言與分布式架構(gòu)的不匹配使得實(shí)現(xiàn)和部署一個(gè)擁有全部功能的類似Chord的組件相當(dāng)困難和復(fù)雜。針對(duì)這些問(wèn)題,提出一種基于Bloom系統(tǒng)來(lái)設(shè)計(jì)P2P分布式哈希表協(xié)議的方法。首先,闡述了Bloom系統(tǒng)的分布式邏輯編程語(yǔ)言要素;其次,設(shè)計(jì)了一個(gè)最小分布式系統(tǒng);再次,通過(guò)定義永久、暫時(shí)、異步通信和周期集合,設(shè)計(jì)了指表維護(hù)算法、后繼列表算法以及維持穩(wěn)定算法等,實(shí)現(xiàn)一個(gè)Chord原型系統(tǒng)。實(shí)驗(yàn)結(jié)果證明,原型系統(tǒng)能完成Chord所有功能,并且與傳統(tǒng)語(yǔ)言相比,代碼量減少60%。分析表明最終的算法代碼和分布式哈希表協(xié)議規(guī)范高度一致,不僅增強(qiáng)了代碼的可讀性和重用性,而且加深了對(duì)協(xié)議本身及其應(yīng)用的理解。
關(guān)鍵詞: P2P;分布式哈希表;邏輯編程;Chord;Bloom
中圖分類號(hào):TP311.133.1文獻(xiàn)標(biāo)志碼:A
英文標(biāo)題
Chord protocol and algorithm in distributed programming language
英文作者名
PENG Chengzhang, JIANG Zejun*, CAI Xiaobin, ZHANG Zhike
英文地址(
School of Computer Science, Northwestern Polytechnical University, Xian Shaanxi 710129, China英文摘要)
Abstract:
1現(xiàn)階段應(yīng)用較多的計(jì)算機(jī)編程語(yǔ)言
計(jì)算機(jī)編程語(yǔ)言的發(fā)展是在解決人機(jī)互動(dòng)矛盾的過(guò)程中所不斷推進(jìn)的。現(xiàn)階段,根據(jù)不同的應(yīng)用環(huán)境,常見(jiàn)的編程語(yǔ)言有如下四種:C、C++、JAVA、Pascal。這四種語(yǔ)言是當(dāng)前主流的進(jìn)行計(jì)算機(jī)軟件編程的語(yǔ)言,通過(guò)對(duì)這幾種語(yǔ)言進(jìn)行解讀能夠更好的了解計(jì)算機(jī)編程語(yǔ)言對(duì)于加算計(jì)軟件開(kāi)發(fā)的影響作用。
1.1C語(yǔ)言
C語(yǔ)言出現(xiàn)于二十世紀(jì)的七八十年代,是最早的一種能夠被人們高度認(rèn)可的一種編程語(yǔ)言。在當(dāng)今的各種計(jì)算機(jī)程序開(kāi)發(fā)中依舊得到廣泛的應(yīng)用。C語(yǔ)言是一種面向過(guò)程的計(jì)算機(jī)語(yǔ)言,其在程序功能的實(shí)現(xiàn)上主要是通過(guò)對(duì)相關(guān)欲實(shí)現(xiàn)的功能進(jìn)行步驟劃分,詳細(xì)的寫出每一個(gè)步驟計(jì)算機(jī)需要執(zhí)行的操作,最終實(shí)現(xiàn)完整的軟件功能。C語(yǔ)言發(fā)展至今,已充分證明了其強(qiáng)大的生命力以及通用性。不僅如此,在運(yùn)用C語(yǔ)言進(jìn)行軟件開(kāi)發(fā)時(shí),無(wú)需過(guò)度的注重程序各要素之間的關(guān)系,代碼簡(jiǎn)短便于理解,語(yǔ)法要求不嚴(yán)格有著較好的容錯(cuò),并且有著較為完善的數(shù)據(jù)結(jié)構(gòu)類型,各種運(yùn)算符同樣得到涉及,夸張的講,現(xiàn)有的所有功能都可以依靠C語(yǔ)言來(lái)實(shí)現(xiàn)。從硬件角度講,C語(yǔ)言有著很好的硬件親和性,能夠直接訪問(wèn)硬件的物理區(qū)域,并對(duì)硬件進(jìn)行直接的編程。C語(yǔ)言在世界范圍內(nèi)都有著廣泛的運(yùn)用,各種軟件開(kāi)發(fā)商都在對(duì)C語(yǔ)言進(jìn)行進(jìn)一步的研究開(kāi)發(fā)。并且,現(xiàn)階段較為常用的JAVA語(yǔ)言同樣是基于C語(yǔ)言進(jìn)行開(kāi)發(fā)。
1.2C++語(yǔ)言
C++語(yǔ)言是基于C語(yǔ)言進(jìn)一步開(kāi)發(fā)的語(yǔ)言,其相較于C語(yǔ)言在程序的根本實(shí)現(xiàn)模式上有著很大的不同。C++語(yǔ)言是面向?qū)ο蟮囊环N編程語(yǔ)言,但在實(shí)際的代碼以及庫(kù)文件方面于C語(yǔ)言有著一定的共同。C++語(yǔ)言既有著C語(yǔ)言的各種優(yōu)點(diǎn)與功能,又有著更家實(shí)用的現(xiàn)實(shí)意義。在許多熟知的操作平臺(tái)是上面都能較為通常的見(jiàn)到C++語(yǔ)言的身影。但C++語(yǔ)言較C語(yǔ)言更難學(xué)習(xí),思維邏輯結(jié)構(gòu)在初步的理解方面往往存在一定的困難。只有在深入掌握這門語(yǔ)言之后,才能在實(shí)際運(yùn)用中了解其強(qiáng)大的功能作用。并且C++語(yǔ)言是一門基礎(chǔ)的面向?qū)ο蟮木幊陶Z(yǔ)言,學(xué)習(xí)C++語(yǔ)言對(duì)于未來(lái)的其他編程語(yǔ)言的學(xué)習(xí)有著很大的幫助。
1.3JAVA語(yǔ)言
JAVA語(yǔ)言內(nèi)核是C語(yǔ)言,即JAVA語(yǔ)言是基于C語(yǔ)言所開(kāi)發(fā)而出的一種語(yǔ)言。并且JAVA語(yǔ)言同樣是一種面向?qū)ο蟮木幊陶Z(yǔ)言。JAVA語(yǔ)言與C++語(yǔ)言相比,在易用性上更具優(yōu)勢(shì),并且JAVA語(yǔ)言也充分的具有C++語(yǔ)言的各種優(yōu)勢(shì)。在非智能機(jī)的時(shí)代中,JAVA語(yǔ)言為手機(jī)娛樂(lè)軟件的開(kāi)發(fā)做出很大的貢獻(xiàn)。在現(xiàn)階段,JAVA語(yǔ)言在智能手機(jī)的運(yùn)用也很多是非常主流的移動(dòng)端圖形軟件的程序編輯語(yǔ)言。另外在JAVA語(yǔ)言的基礎(chǔ)上,還發(fā)展出C#語(yǔ)言。C#語(yǔ)言相較于JAVA語(yǔ)言更加適合智能手機(jī)的軟件開(kāi)發(fā),在語(yǔ)法特性以及一些屬性方面都要更加契合現(xiàn)階段的軟件開(kāi)發(fā)。
1.4Pascal語(yǔ)言
Pascal語(yǔ)言在一定程度上不如以上幾種語(yǔ)言更令人熟知,但在專業(yè)領(lǐng)域Pascal語(yǔ)言有著非常重要的地位。Pascal語(yǔ)言是一種高級(jí)編程語(yǔ)言,有著很強(qiáng)的個(gè)體特點(diǎn)。Pascal是針對(duì)當(dāng)前計(jì)算機(jī)環(huán)境下所出現(xiàn)的一種語(yǔ)言,有著很高的運(yùn)行效率,并且對(duì)于程序代碼也有著較強(qiáng)的檢錯(cuò)糾錯(cuò)能力。Pascal語(yǔ)言本身的數(shù)據(jù)類型豐富,結(jié)構(gòu)也更為嚴(yán)謹(jǐn)。在當(dāng)前大數(shù)據(jù)的環(huán)境下能夠很好的實(shí)現(xiàn)數(shù)據(jù)以及算法的描述。且代表著新一代高級(jí)計(jì)算機(jī)語(yǔ)言的崛起。
以上四種語(yǔ)言是當(dāng)前發(fā)展?fàn)顟B(tài)下幾種較為有代表性的計(jì)算機(jī)語(yǔ)言,除了以上幾種,計(jì)算機(jī)編程語(yǔ)言還包括更早的B語(yǔ)言,現(xiàn)在同樣有所運(yùn)用的VB語(yǔ)言等等。計(jì)算機(jī)編程語(yǔ)言的多樣性以及互相之間結(jié)構(gòu)的關(guān)聯(lián)性都表現(xiàn)出新的編程語(yǔ)言是基于傳統(tǒng)的語(yǔ)言進(jìn)行調(diào)整優(yōu)化而來(lái)的特點(diǎn)。各種編程語(yǔ)言在發(fā)展中都有著自身特有的運(yùn)用范圍與實(shí)用價(jià)值。
2在軟件開(kāi)發(fā)中對(duì)于編程語(yǔ)言的選擇依據(jù)
編程語(yǔ)言的出現(xiàn)是為了設(shè)計(jì)具有各種功能的計(jì)算機(jī)軟件。不同的軟件開(kāi)發(fā)都需要運(yùn)用到不同種類的計(jì)算機(jī)編程語(yǔ)言。不同的計(jì)算機(jī)編程語(yǔ)言有著各自不同的屬性,但殊途同歸都能構(gòu)就某一種功能進(jìn)行實(shí)現(xiàn)。但運(yùn)用不同的編程語(yǔ)言在實(shí)現(xiàn)的難度上不同,實(shí)際的軟件使用條件也不同。選擇合適的編程語(yǔ)言對(duì)于開(kāi)發(fā)更具通用性,更適合現(xiàn)階段計(jì)算機(jī)條件的軟件有著重要的意義。所以在進(jìn)行計(jì)算機(jī)軟件的開(kāi)發(fā)時(shí),對(duì)于計(jì)算機(jī)編程語(yǔ)言的選擇往往會(huì)遵循著一定改的規(guī)律。
2.1內(nèi)外環(huán)境因素
一個(gè)優(yōu)秀的計(jì)算機(jī)軟件往往能夠很好兼顧計(jì)算機(jī)的內(nèi)外環(huán)境,保證在一定的外部硬件環(huán)境下能夠穩(wěn)定高效的運(yùn)行。在內(nèi)部環(huán)境中又能實(shí)現(xiàn)很好的兼容,容錯(cuò)等等。所以在對(duì)軟件的開(kāi)發(fā)中往往要針對(duì)軟件的內(nèi)外環(huán)境進(jìn)行慎重的考慮。對(duì)于語(yǔ)言的選擇,要考慮到軟件的整體框架,將要實(shí)現(xiàn)的內(nèi)容,開(kāi)發(fā)的平臺(tái)等等因素。對(duì)于語(yǔ)言的選擇要考慮到外部環(huán)境變更后對(duì)于軟件兼容性的影響,所以語(yǔ)言的選擇要有前瞻性。另外編程語(yǔ)言的選擇還要考慮到軟件的功能和與之契合的專業(yè)領(lǐng)域內(nèi)容,保證選擇的語(yǔ)言能夠很好的實(shí)現(xiàn)軟件的是指功能。
2.2軟件應(yīng)用領(lǐng)域的因素
對(duì)于編程語(yǔ)言的選擇要充分的考慮到軟件是運(yùn)用在何種領(lǐng)域之中,是對(duì)于硬件進(jìn)行開(kāi)發(fā)還是針對(duì)面向?qū)ο蟮拈_(kāi)發(fā),是要實(shí)現(xiàn)圖形還是要實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析。對(duì)于領(lǐng)域的劃分清楚后再選擇適用的計(jì)算機(jī)編程語(yǔ)言。不同軟件如果不考慮實(shí)際應(yīng)用領(lǐng)域接進(jìn)行軟件的開(kāi)發(fā),最后做出的軟件在一些方面無(wú)法適應(yīng)現(xiàn)實(shí)需求。而且,選擇合適領(lǐng)域的計(jì)算機(jī)編程語(yǔ)言既能夠保證軟件的功能得以全部的實(shí)現(xiàn),又能夠保證在軟件開(kāi)發(fā)過(guò)程中能夠順利的的進(jìn)行。對(duì)于后期的軟件維護(hù)也有著很重要的意義。一般的C語(yǔ)言更適用硬件的開(kāi)發(fā),c++以及Java語(yǔ)言更適用于面相對(duì)象的軟件開(kāi)發(fā),VC,VB語(yǔ)言則適用于信息領(lǐng)域的軟件開(kāi)發(fā)等等。
2.3軟件整體框架的影響
軟件的整體的框架決定了最終的編程語(yǔ)言的選擇,對(duì)于軟件中的不同的功能項(xiàng)目可以選擇不同類型的編程語(yǔ)言,對(duì)于加大規(guī)模的軟件的實(shí)現(xiàn),要充分的進(jìn)行整體框架之間功能銜接之間進(jìn)行細(xì)致的考量。
2.4掌握程度不同的編程語(yǔ)言影響
掌握程度不同的編程語(yǔ)言在進(jìn)行軟件編寫的時(shí)候會(huì)對(duì)軟件的開(kāi)發(fā)效率,軟件的功能實(shí)現(xiàn)效果帶來(lái)很大的影響,所以選擇熟悉的編程語(yǔ)言進(jìn)行編寫也是一個(gè)十分重要的考慮因素。即使是同類型的編程語(yǔ)言,不同人掌握的版本也不相同,但是熟悉的編程語(yǔ)言會(huì)使得編程變得更加的流暢,最終軟件的質(zhì)量表現(xiàn)更加出眾。
以上四個(gè)方面即是在進(jìn)行軟件開(kāi)發(fā)中對(duì)于編程語(yǔ)言選擇時(shí)需要考慮到各種元素。對(duì)于不同編程語(yǔ)言對(duì)軟件開(kāi)發(fā)的實(shí)際影響會(huì)更加直觀的表現(xiàn)出編程語(yǔ)言選擇的重要性。
3不同編程語(yǔ)言對(duì)于軟件開(kāi)發(fā)帶來(lái)的影響
不同編程語(yǔ)言對(duì)于實(shí)際的軟件開(kāi)發(fā)影響其實(shí)在上述的編程語(yǔ)言作用以及對(duì)編程語(yǔ)言的選擇策略中已經(jīng)進(jìn)行相關(guān)的敘述。但還是要就不同語(yǔ)言對(duì)于對(duì)于軟件開(kāi)發(fā)帶來(lái)的作用進(jìn)行詳細(xì)的表述。
3.1C語(yǔ)言對(duì)軟件開(kāi)發(fā)帶來(lái)的影響
上文提到C語(yǔ)言是一種面向過(guò)程的計(jì)算機(jī)編程語(yǔ)言,其有著悠遠(yuǎn)的運(yùn)用歷史。在現(xiàn)階段,掌握C語(yǔ)言的人群占據(jù)很大的比例,并且C語(yǔ)言能夠適應(yīng)所有軟件功能的開(kāi)發(fā)。但在實(shí)際上現(xiàn)階段使用C語(yǔ)言進(jìn)行較大規(guī)模的軟件開(kāi)發(fā)實(shí)很罕見(jiàn)的,之所以會(huì)這樣,是充分的考慮到C語(yǔ)言本身的一些特性所做出的決定。C語(yǔ)言實(shí)面向過(guò)程的釀成語(yǔ)言,其要求在算法設(shè)計(jì)中詳細(xì)的對(duì)事件的每一個(gè)詳細(xì)步驟進(jìn)行細(xì)致的劃分。一旦遇到復(fù)雜功能的實(shí)現(xiàn),御用C語(yǔ)言進(jìn)行編程就會(huì)造成過(guò)于龐大的程序語(yǔ)句基數(shù)。過(guò)大的工作量一方面為開(kāi)發(fā)工作帶來(lái)各種困難,另一方面,一旦初夏那個(gè)中問(wèn)題將很難及時(shí)的對(duì)軟件進(jìn)行調(diào)整,并且有可能出現(xiàn)平臺(tái)移植時(shí)的技術(shù)難題。
3.2C++語(yǔ)言在軟件開(kāi)發(fā)中帶來(lái)的影響
C++語(yǔ)言是一種面向?qū)ο蟮挠?jì)算機(jī)編程語(yǔ)言,在一定程度上運(yùn)用C++語(yǔ)言進(jìn)行功能的實(shí)現(xiàn)要比C語(yǔ)言更為容易。并且,C++語(yǔ)言實(shí)除了C語(yǔ)言意外被人們所熟知的第二種編程語(yǔ)言。對(duì)于這種語(yǔ)言的使用者范圍也是十分的廣闊。但是,在運(yùn)用C++語(yǔ)言時(shí),如果不充分考慮到各種因素的影響,就會(huì)出現(xiàn)與C語(yǔ)言同樣的問(wèn)題。由于當(dāng)前的軟件開(kāi)發(fā)都是有多人合作進(jìn)行開(kāi)發(fā),所以對(duì)于各模塊程序之間的聯(lián)系必須要緊密,同時(shí)也必須滿足一定的共用協(xié)議,如歌無(wú)法滿足上述要求,完成模塊化功能開(kāi)發(fā)后,各個(gè)模塊化程序出現(xiàn)各種不兼容狀況,無(wú)法連稱為一個(gè)整體,最終的軟件開(kāi)發(fā)以失敗告終。
3.3JAVA語(yǔ)言在軟件開(kāi)發(fā)中的影響
Java語(yǔ)言就前兩種語(yǔ)言來(lái)講,相對(duì)更為簡(jiǎn)單,其實(shí)現(xiàn)的軟件功能效果也更為優(yōu)秀。但是Java語(yǔ)言的使用有著更為明顯的局限性。運(yùn)用Java進(jìn)行基礎(chǔ)圖形渲染的制作能夠?qū)崿F(xiàn),但如果要想實(shí)現(xiàn)更為高級(jí)的表現(xiàn)效果,只是運(yùn)用Java便顯得十分不足。另外,Java開(kāi)發(fā)的軟件中,某些協(xié)議與計(jì)算機(jī)中某些軟件沖突諸如,Java相關(guān)軟件在迅雷中的一些問(wèn)題。著中不兼容問(wèn)題的出現(xiàn)會(huì)大大的影響軟件的使用狀態(tài)。也會(huì)降低軟件的品質(zhì)。
3.4VB語(yǔ)言的在軟件開(kāi)發(fā)中的影響
VB語(yǔ)言是專門針對(duì)數(shù)據(jù)信息軟件開(kāi)發(fā)的一門語(yǔ)言,實(shí)一種十分方便且高級(jí)的語(yǔ)言,運(yùn)用VB語(yǔ)言進(jìn)行軟件開(kāi)發(fā)能夠十分輕易的實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析與輸入輸出。但是VB語(yǔ)言的使用范圍有著很具體的要求,無(wú)法運(yùn)用VB語(yǔ)言進(jìn)行其他類型軟件的開(kāi)發(fā),如果忽視這一問(wèn)題,在實(shí)際的軟件開(kāi)發(fā)中就會(huì)面臨更多的困難,且開(kāi)發(fā)出的軟件在功能的實(shí)現(xiàn)上也并不能滿足各種實(shí)際的需求,得不償失。
綜合分析來(lái)講,不同編程語(yǔ)言本身就是為針對(duì)不同的應(yīng)用環(huán)境所出現(xiàn),所有的編程語(yǔ)言殊途同歸,都是為了將開(kāi)發(fā)者能夠理解的語(yǔ)言轉(zhuǎn)化為計(jì)算機(jī)能夠理解的語(yǔ)言。而之所以出現(xiàn)如此多種類的計(jì)算及語(yǔ)言正是由于,在不同的開(kāi)發(fā)需求下,單一語(yǔ)言的各種設(shè)置無(wú)法較好的實(shí)現(xiàn)軟件所想要實(shí)現(xiàn)的功能。編程語(yǔ)言的進(jìn)步往往實(shí)在已有的語(yǔ)言的基礎(chǔ)上進(jìn)行進(jìn)一步的完善,最終能夠更好的實(shí)現(xiàn)技術(shù)人員的需要,實(shí)程序員能夠更方便的進(jìn)行各種功能軟件的開(kāi)發(fā),不斷的挖掘計(jì)算機(jī)功能潛力,更好的方便大眾的生活。所以在編程語(yǔ)言的選擇中一定要認(rèn)清編程語(yǔ)言的適用范圍以及功能,有原則的對(duì)編程語(yǔ)言進(jìn)行選擇。
4結(jié)語(yǔ)
計(jì)算機(jī)軟件開(kāi)發(fā)語(yǔ)言就是計(jì)算機(jī)軟件開(kāi)發(fā)的工具。選擇合適的工具才能更好的開(kāi)發(fā)出具備各種功能的計(jì)算機(jī)軟件。開(kāi)發(fā)者要加強(qiáng)對(duì)于不同編程語(yǔ)言的了解程度,明白各類型編程語(yǔ)言對(duì)實(shí)際軟件開(kāi)發(fā)的影響作用。對(duì)于編程語(yǔ)言的選擇有更為直觀的認(rèn)知,最終摸索出在軟件開(kāi)發(fā)中選擇編程語(yǔ)言的方法,更高效的實(shí)現(xiàn)計(jì)算機(jī)軟件的開(kāi)發(fā)。
參考文獻(xiàn)
[1]羅瓊,李艷,熊英.不同編程語(yǔ)言對(duì)計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的影響[J].電腦編程技巧與維護(hù),2013(12):24-28.
[2]高霞.探討不同編程語(yǔ)言對(duì)計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的影響[J].電腦編程技巧與維護(hù),2016(03):26-31.
[3]李開(kāi)元.探究計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)過(guò)程中不同編程語(yǔ)言的影響[J].信息化建設(shè),2015(06):30-35.
[4]張利軍.計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中不同編程語(yǔ)言的影響[J].科技傳播,2015(15):24-29.
[5]馬潔.計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中選擇的編程語(yǔ)言[J].電腦知識(shí)與技術(shù),2013(08):44-49.
[6]康超.基于計(jì)算機(jī)軟件開(kāi)發(fā)的JAVA編程語(yǔ)言探討[J].科技展望,2016(04):21-26.
[7]劉群娣.基于計(jì)算機(jī)軟件開(kāi)發(fā)JAVA編程語(yǔ)言分析[J].信息與電腦(理論版),2015(22):26-31.
作者簡(jiǎn)介
周俊威(1993-),男,四川省成都市人。大學(xué)本科學(xué)歷,畢業(yè)生。研究方向?yàn)橛?jì)算機(jī)科學(xué)與技術(shù)。
作者單位
西南石油大學(xué)四川省成都市610500
1 JAVA編程語(yǔ)言的特點(diǎn)
JAVA編程語(yǔ)言在計(jì)算機(jī)軟1件開(kāi)發(fā)中被廣泛使用,是因其本身的優(yōu)勢(shì),本文對(duì)其優(yōu)勢(shì)的總結(jié)描述如下:
第一,編寫結(jié)構(gòu)簡(jiǎn)單。與C++,VF、VB等語(yǔ)言相比,JAVA的編寫方式更加簡(jiǎn)單,對(duì)軟件開(kāi)發(fā)人員而言操作較為簡(jiǎn)單,其簡(jiǎn)單之初主要是沒(méi)有嵌套循環(huán)的程序、沒(méi)有復(fù)雜的運(yùn)算過(guò)程,能夠提高軟件開(kāi)發(fā)效率,能有效為編程人員減負(fù),也能減少占用計(jì)算機(jī)內(nèi)存空間。因此,計(jì)算機(jī)軟件開(kāi)發(fā)使用JAVA語(yǔ)言進(jìn)行編程是一個(gè)跨時(shí)代的改革,對(duì)提高計(jì)算機(jī)的運(yùn)行速度有重要作用。
第二,獨(dú)立性較好。在計(jì)算機(jī)軟件的開(kāi)發(fā)階段,JAVA語(yǔ)言的獨(dú)立性特點(diǎn)主要表現(xiàn)在,它可以在JAVA虛擬機(jī)中完成編寫、運(yùn)行、改進(jìn)、在運(yùn)行的過(guò)程,通過(guò)充分的校驗(yàn)和試運(yùn)行后運(yùn)用到計(jì)算機(jī)軟件開(kāi)發(fā)中[1]。因其具有獨(dú)立的虛擬機(jī)可以對(duì)編程內(nèi)容進(jìn)行詳細(xì)的解釋,便于修改,對(duì)計(jì)算機(jī)的要求相對(duì)較低。
第三,JAVA編程語(yǔ)言的應(yīng)用能夠推動(dòng)面向?qū)ο蠹夹g(shù)發(fā)揮其作用。面向技術(shù)是在計(jì)算機(jī)軟件開(kāi)發(fā)過(guò)程中使用的一種技術(shù),其優(yōu)勢(shì)和特點(diǎn)也較為顯著。在計(jì)算機(jī)技術(shù)的發(fā)展進(jìn)程當(dāng)中,面向?qū)ο蠹夹g(shù)的作用也越來(lái)越強(qiáng)大。面向?qū)ο蠹夹g(shù)在計(jì)算機(jī)軟件的開(kāi)發(fā)階段能夠有效區(qū)分客觀元素,對(duì)編程形式進(jìn)行多樣式的描述,充分發(fā)揮其多用性、繼承性等等特點(diǎn),而JAVA編程語(yǔ)言對(duì)其具有很強(qiáng)的輔助作用,能夠凸顯面向?qū)ο蠹夹g(shù)的一系列特性,推動(dòng)軟件開(kāi)發(fā)過(guò)程順利進(jìn)行。
第四,多線程。IAVA編程語(yǔ)言自身存在優(yōu)勢(shì)還有,提升軟件開(kāi)發(fā)工作的精準(zhǔn)度,確保計(jì)算機(jī)在數(shù)據(jù)共享過(guò)程中的準(zhǔn)確性;JAVA編程語(yǔ)言本身具有多線程的優(yōu)勢(shì),因此在計(jì)算機(jī)軟件開(kāi)發(fā)過(guò)程中,能夠?qū)ν瓿刹煌S度和方向的功能有所助力。
第五,安全性高。在軟件開(kāi)發(fā)過(guò)程中使用JAVA進(jìn)行編程,可以實(shí)現(xiàn)公共密鑰技術(shù),對(duì)保障計(jì)算機(jī)安全有重要作用。所以說(shuō)JAVA編程語(yǔ)言安全性能較高,受軟件開(kāi)發(fā)和使用者的一致好評(píng)。
2 計(jì)算機(jī)軟件開(kāi)發(fā)中的JAVA編程語(yǔ)言技術(shù)
2.1 Database Connectivity技術(shù)
這一技術(shù)的功能主要是整合和融合關(guān)系數(shù)據(jù),通過(guò)連接方式實(shí)現(xiàn)數(shù)據(jù)連接。在計(jì)算機(jī)軟件開(kāi)發(fā)中使用這一技術(shù)能夠有效建立數(shù)據(jù)庫(kù)的管理體系,也能有效統(tǒng)一一類數(shù)據(jù)和接口,不斷優(yōu)化數(shù)據(jù)連接方式,推動(dòng)計(jì)算機(jī)后臺(tái)系統(tǒng)順利運(yùn)行。
2.2 Annotation技術(shù)
這一技術(shù)能夠有效連接計(jì)算機(jī)各項(xiàng)因素,對(duì)其進(jìn)行整合。在進(jìn)行計(jì)算機(jī)軟件的開(kāi)發(fā)過(guò)程中,編程人員能夠借用這技術(shù)對(duì)各項(xiàng)軟件元素進(jìn)行分類,建立各自管理體系。其中,Beans技術(shù)作用最不可小覷,可以自成一個(gè)體系獨(dú)立于軟件開(kāi)發(fā)平臺(tái)之外。
2.3 Remote Method Invocation技術(shù)
這一技術(shù)可以對(duì)軟件開(kāi)發(fā)中的各項(xiàng)元素進(jìn)行調(diào)用;還可以有效連接客戶機(jī)和總服務(wù)器。此外,還可以維護(hù)系統(tǒng)正常運(yùn)行,保障程序運(yùn)行的安全性和完整性。
3 JAVA編程語(yǔ)言在計(jì)算機(jī)軟件開(kāi)發(fā)中的相關(guān)技術(shù)
3.1 JAVA編程語(yǔ)言數(shù)據(jù)庫(kù)連接
在計(jì)算機(jī)軟件開(kāi)發(fā)過(guò)程中,依賴于JAVA編程語(yǔ)言數(shù)據(jù)庫(kù)對(duì)各種相關(guān)數(shù)據(jù)庫(kù)進(jìn)行連接,在完成軟件開(kāi)發(fā)的程式編寫過(guò)程之后,為了功能的完整性,需要對(duì)各個(gè)數(shù)據(jù)庫(kù)進(jìn)行連接,這時(shí)候JAVA編程語(yǔ)言數(shù)據(jù)庫(kù)連接就要發(fā)揮作用了。這一技術(shù),可以對(duì)接口進(jìn)行分類,以供軟件編程人員調(diào)動(dòng),為簡(jiǎn)化開(kāi)發(fā)過(guò)程提供重要支持。
3.2 JAVA Annotatnn
JAVA Annotation技術(shù)能夠?qū)幊陶Z(yǔ)言中的某些信息進(jìn)行整合和分析,為用戶的使用提供便利,也能優(yōu)化軟件行為[2]。其中,我們上文提到的JAVA Beans,它具有很強(qiáng)的實(shí)用性,可以對(duì)體系進(jìn)行獨(dú)立控制,也正因?yàn)榇似渚哂械陌踩院鸵恢滦砸獜?qiáng)于其他編程語(yǔ)言。
3.3 JAVA遠(yuǎn)程方法調(diào)動(dòng)技術(shù)
這種應(yīng)用程式能夠促進(jìn)分布式的實(shí)現(xiàn),此外,還能調(diào)動(dòng)JAVA中的類和對(duì)象等,協(xié)調(diào)客戶機(jī)和服務(wù)器之間的關(guān)系,確保其正常運(yùn)轉(zhuǎn)。它的遠(yuǎn)程調(diào)動(dòng)技術(shù)可以有效整合軟件開(kāi)發(fā)中需要的信息和資源,調(diào)試各種分布式的小程序,對(duì)于實(shí)現(xiàn)軟件開(kāi)發(fā)的整體功能和安全性意義重大。
關(guān)鍵詞: 數(shù)字圖像處理;可視化編程;XML;MATLAB
中圖分類號(hào): G434 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2017)08-0093-04
一、可視化圖像處理編程語(yǔ)言的設(shè)計(jì)目的
《數(shù)字圖像處理》是電子信息類專業(yè)一門重要的專業(yè)課,因其與機(jī)器視覺(jué)具有密切關(guān)系,在我國(guó)制造業(yè)升級(jí)的大環(huán)境下,該課程的教學(xué)更具有了重要的意義。《數(shù)字圖像處理》實(shí)踐性強(qiáng),因此針對(duì)本課程的演示實(shí)驗(yàn)和學(xué)生動(dòng)手的課程實(shí)驗(yàn),已經(jīng)有許多研究者基于諸如Visual C++[1]、OpenCV[2,3]、ImageJ[4]、DSP[5,6]以及MATLAB[7-9]等不同軟件和技術(shù)提出了實(shí)驗(yàn)教學(xué)的方案。但從學(xué)生實(shí)際情況來(lái)看,若僅提供操作界面,通過(guò)菜單和按鈕操作來(lái)觀察圖像處理方法的效果,雖然能適應(yīng)多數(shù)學(xué)生的水平,也能幫助直觀了解有關(guān)方法的效果,但對(duì)方法的編程實(shí)現(xiàn)訓(xùn)練不足;但若使用某種編程語(yǔ)言來(lái)進(jìn)行實(shí)驗(yàn),哪怕是使用OpenCV或MATLAB@類直接支持圖像處理的語(yǔ)言,仍會(huì)使相當(dāng)部分的學(xué)生產(chǎn)生畏難情緒,且在實(shí)現(xiàn)過(guò)程中易于陷入語(yǔ)言本身的細(xì)節(jié)問(wèn)題,難以專注于對(duì)特定圖像處理應(yīng)用的整體框架性理解。
在多年的教學(xué)過(guò)程中,學(xué)生普遍對(duì)可視化的編程工具表現(xiàn)出新奇感,較少產(chǎn)生畏難情緒,實(shí)驗(yàn)的參與度普遍較高。除此之外,可視化編程本身的框圖特性,能夠直觀便捷地描述出算法的主要步驟和流程。因此,本文設(shè)計(jì)了一種MATLAB環(huán)境下用于數(shù)字圖像處理的可視化編程語(yǔ)言xGIPL(XML-based Graphical Image Processing Language),它將相關(guān)實(shí)現(xiàn)代碼封裝為圖像處理“功能模塊”,使學(xué)生可以將注意力集中在整體算法步驟的理解上,而不用擔(dān)心語(yǔ)言細(xì)節(jié)。基于該語(yǔ)言,可以開(kāi)發(fā)面向圖像處理的可視化編程軟件,其用戶界面和操作類似于Simulink,即通過(guò)圖形化模塊設(shè)計(jì)界面或直接書寫所需要的XML模塊文件,來(lái)預(yù)先實(shí)現(xiàn)好所需的圖像處理步驟的功能,如圖像的二值化、顏色空間轉(zhuǎn)換、常用的濾波操作、區(qū)域標(biāo)記和特征提取等等,然后由用戶在可視化編程界面中通過(guò)拖放、刪除、連接模塊以及圖形化的設(shè)置模塊參數(shù)等操作,實(shí)現(xiàn)完整的圖像處理任務(wù)的編程,之后可視化編程軟件將負(fù)責(zé)分析和解釋所實(shí)現(xiàn)的圖形化程序,將其翻譯為MATLAB m文件函數(shù),并自動(dòng)在MATLAB執(zhí)行程序和返回處理結(jié)果。
二、圖像處理功能模塊的設(shè)計(jì)
圖像處理功能模塊(Image Processing Module,IPM)是具有輸入和輸出、完成特定圖像處理步驟的基本編程單元。在可視化編程界面中,每個(gè)IPM就是一個(gè)可獨(dú)立增減、拖拽并能夠與程序的其他部分通過(guò)連線相連接的實(shí)體。IPM的定義由IPM文件給出。我們用XML語(yǔ)言來(lái)定義模塊,因?yàn)閄ML語(yǔ)言本身具有靈活性和易讀性,能夠自由地定義所需的內(nèi)容;XML的編輯很方便,通過(guò)普通的文本編輯器即可進(jìn)行;此外在很多開(kāi)發(fā)環(huán)境中,都有現(xiàn)成的XML解析器可用,從而大大方便了IPM和可視化圖像處理程序的翻譯過(guò)程。
1.IPM的具體設(shè)計(jì)
每個(gè)IPM的XML結(jié)構(gòu)中包含一個(gè)名為“ipmod”的根節(jié)點(diǎn),其下包含如下子節(jié)點(diǎn):①mod_name節(jié)點(diǎn)。給出了每個(gè)IPM在模塊庫(kù)中的全局唯一的標(biāo)識(shí),且與IPM的XML文件名相同;②mod_help節(jié)點(diǎn)。提供了本IPM的幫助信息,可在可視化編程界面中為用戶提供模塊的用法;③glyph節(jié)點(diǎn)。用于指定一個(gè)圖片文件路徑,以便在可視化編程界面中提供更加直觀和美觀的模塊外觀;④parent_group節(jié)點(diǎn)。用于以樹狀結(jié)構(gòu)組織和管理眾多IPM構(gòu)成的模塊庫(kù);⑤port_pos節(jié)點(diǎn)。用于指定可視化界面中IPM的輸入輸出端口出現(xiàn)的位置。port_pos又包含兩個(gè)子節(jié)點(diǎn):inport_pos節(jié)點(diǎn)和outport_pos節(jié)點(diǎn),分別指定了輸入端口和輸出端口的位置;⑥inputs節(jié)點(diǎn)和outputs節(jié)點(diǎn)。分別用于定義與IPM的輸入和輸出有關(guān)的信息。在inputs節(jié)點(diǎn)和outputs節(jié)點(diǎn)之下,又分別可包含一個(gè)或多個(gè)inport節(jié)點(diǎn)和outport節(jié)點(diǎn),它們具體定義了每個(gè)輸入端口和輸出端口,其結(jié)構(gòu)稍后介紹。inputs節(jié)點(diǎn)和outputs節(jié)點(diǎn)為可選節(jié)點(diǎn),即一個(gè)IPM可以沒(méi)有輸入(沒(méi)有inputs節(jié)點(diǎn))或沒(méi)有輸出(沒(méi)有outputs節(jié)點(diǎn)),但不能兩者均無(wú);⑦implement節(jié)點(diǎn)。給出了實(shí)現(xiàn)本IPM的處理功能的MATLAB代碼。
inputs節(jié)點(diǎn)下的inport節(jié)點(diǎn)及outputs節(jié)點(diǎn)下的outport節(jié)點(diǎn)定義了IPM的各輸入、輸出端口,相當(dāng)于IPM的輸入和輸出參數(shù)。inport節(jié)點(diǎn)和outport節(jié)點(diǎn)均包含如下子節(jié)點(diǎn):
(1)port_name節(jié)點(diǎn)。給出了該端口在IPM內(nèi)的唯一名稱,并且在IPM的implement代碼中通過(guò)“%port_name”的方式加以引用。
(2)port_help節(jié)點(diǎn)。給出了該端口的幫文本。
此外,inport節(jié)點(diǎn)還包含:
(3)可選的value_range節(jié)點(diǎn)。當(dāng)一個(gè)inport節(jié)點(diǎn)包含value_range節(jié)點(diǎn)時(shí),表示該端口的取值有一定的范圍限制,因此在可視化界面中可以采用適當(dāng)?shù)姆绞剑ㄈ鐫L動(dòng)條或下拉菜單等)更方便地加以設(shè)定。輸入端口的取值范圍又可采用如下三種形式之一:①整數(shù)取值范圍。用value_range節(jié)點(diǎn)下的int_range子節(jié)點(diǎn)表示,而int_range下又含一個(gè)max子節(jié)點(diǎn)和一個(gè)min子節(jié)點(diǎn),分別給出可選的整數(shù)值的上下限;②實(shí)數(shù)取值范圍。用real_range子節(jié)點(diǎn)表示,其下同樣包含一個(gè)max和一個(gè)min子節(jié)點(diǎn)來(lái)給出上下限;③類別型取值范圍。用cat_set字節(jié)點(diǎn)表示,其下包含若干cat子節(jié)點(diǎn),每個(gè)cat子節(jié)點(diǎn)的值一般為一個(gè)MATLAB字符串。
(4)可選的default節(jié)點(diǎn)。表明當(dāng)該輸入端口未與其他模塊的輸出端口相連,也沒(méi)有通過(guò)用戶編輯來(lái)設(shè)置一個(gè)值時(shí),該端口的缺省取值。若存在default節(jié)點(diǎn),則表明該輸入是可選參數(shù),否則輸入是必選參數(shù),必須由用戶通過(guò)上述兩種方式之一為其提供所需的值。
2.IPM示例
下面以一個(gè)示例性的ReadImage IPM的XML文件來(lái)說(shuō)明所定義的結(jié)構(gòu)。ReadImage模塊定義的代碼如下,為簡(jiǎn)潔起見(jiàn),其中略去了mod_help、glyph、port_pos、parent_group和port_help等非核心節(jié)點(diǎn):
ReadImage
Path
Format
'Auto-determined'
'bmp'
'jpeg'
...
'Auto-determined'
ImageData
if strcmp(%Format, 'Auto-determined')
%ImageData = imread(%Path);
else
%ImageData = imread(%Path, %Format);
end
由上述代a可見(jiàn),ReadImage模塊包含兩個(gè)輸入端口――Path端口和Format端口。Path端口用于指定待讀取的圖像文件的路徑,是必選端口,需要用戶在可視化編程的模塊編輯界面中輸入或通過(guò)其他模塊傳入;Format端口用于指定圖像文件的格式,具有類別型的取值范圍,指出了模塊支持的圖像文件格式,而缺省值為“Auto-determined”,即模塊根據(jù)文件后綴名自動(dòng)確定圖像文件格式。輸出端口只有一個(gè),即ImageData端口,是所讀取到的圖像數(shù)據(jù)矩陣。在implement節(jié)點(diǎn)中可以看到模塊功能的實(shí)現(xiàn)代碼。
三、可視化圖像處理程序的結(jié)構(gòu)設(shè)計(jì)
1.圖像處理程序的設(shè)計(jì)
在可視化編程界面上放置、拖拽和連接IPM的實(shí)例,即可構(gòu)成圖像處理程序(Image Processing Program,IPP)。我們同樣利用XML來(lái)作為程序源代碼的組織方式。圖像處理程序的XML根節(jié)點(diǎn)是“ipprog”節(jié)點(diǎn),其下包括1個(gè)memo節(jié)點(diǎn)和若干個(gè)block節(jié)點(diǎn)。memo節(jié)點(diǎn)僅是對(duì)IPP的描述和介紹,而構(gòu)成IPP實(shí)質(zhì)功能的部分是block節(jié)點(diǎn)。
block節(jié)點(diǎn)包含如下子節(jié)點(diǎn):
(1)block_name節(jié)點(diǎn)。block_name是程序中每個(gè)IPM實(shí)例在IPP范圍內(nèi)的唯一標(biāo)識(shí)。一個(gè)IPM可能在一個(gè)IPP中有多個(gè)實(shí)例,但這些實(shí)例必須具有不同的block_name。
(2)module節(jié)點(diǎn)。儲(chǔ)存了該IPM實(shí)例所使用的IPM的名字,即IPM定義中的mod_name。
(3)inputs節(jié)點(diǎn)。儲(chǔ)存了該IPM實(shí)例的輸入值的信息。inputs節(jié)點(diǎn)下包含一個(gè)或多個(gè)inport節(jié)點(diǎn),每個(gè)inport節(jié)點(diǎn)描述了相應(yīng)的輸入端口的輸入值信息,由如下子節(jié)點(diǎn)構(gòu)成:①port_name節(jié)點(diǎn)。輸入端口的端口名,即IPM定義中的port_name;②value_type節(jié)點(diǎn)。value_type節(jié)點(diǎn)的可能取值為“internal”或“external”。internal表示該端口的輸入值是由用戶在模塊編輯界面中輸入而來(lái),并非來(lái)自其他IPM實(shí)例的輸出;external則表示該端口的輸入值由其他IPM實(shí)例的輸出所提供;③value節(jié)點(diǎn)。當(dāng)value_type為internal時(shí),用戶提供的輸入值儲(chǔ)存于value節(jié)點(diǎn)中;當(dāng)value_type為external時(shí),則不應(yīng)出現(xiàn)value節(jié)點(diǎn);④src_block節(jié)點(diǎn)和src_outport節(jié)點(diǎn)。當(dāng)value_type為external時(shí),src_block節(jié)點(diǎn)儲(chǔ)存了該輸入端口的輸入所來(lái)自的那個(gè)IPM實(shí)例的名字,即前述的block_name;src_outport節(jié)點(diǎn)指出了所來(lái)自的該IPM實(shí)例的具體輸出端口名。通過(guò)src_block和src_outport便隱含地描述了IPM間的連接情況。當(dāng)value_type為internal時(shí),不應(yīng)出現(xiàn)src_block和src_outport節(jié)點(diǎn)。
2.IPP示例
我們通過(guò)如下示例IPP來(lái)進(jìn)行說(shuō)明:
This is an examplar application diagram.
writer
SaveImage
ImageIn
external
reader
ImageData
Path
internal
'result.jpg'
Format
internal
'Auto-determined'
reader
ReadImage
Path
internal
'image1.jpg'
Format
internal
'Auto-determined'
@個(gè)簡(jiǎn)單的程序包括兩個(gè)IPM實(shí)例:reader和writer。reader模塊是一個(gè)ReadImage IPM,在程序的輸入設(shè)置下由“image.jpg”文件讀入圖像;writer模塊是一個(gè)SaveImage IPM,在程序的輸出設(shè)置下將reader讀入的圖像數(shù)據(jù)再保存為圖像文件“result.jpg”。
四、可視化圖像處理程序翻譯器
可視化圖像處理程序翻譯器的作用,是將IPP自動(dòng)轉(zhuǎn)為可在MATLAB中執(zhí)行的.m函數(shù)文件。翻譯器的基本工作思路是首先對(duì)IPM和IPP的XML文件進(jìn)行解析,獲取各個(gè)XML節(jié)點(diǎn)信息,然后以系統(tǒng)性的編碼和命名方式來(lái)產(chǎn)生所需的.m文件。
在完成XML文件解析后,先根據(jù)程序所用各IPM的implement元素,以子函數(shù)形式封裝這些代碼。封裝的主要思路是,利用IPM名作為子函數(shù)名,采用系統(tǒng)性的方法定義輸入輸出的變量名,例如對(duì)于第1個(gè)輸入,可以定義為“in1__”。在定義了輸入輸出的變量名后,將implement代碼中以%port_name形式給出的輸入輸出變量替換為所生成的變量名。
整個(gè)IPP的翻譯則首先需要對(duì)IPM實(shí)例按調(diào)用的邏輯順序進(jìn)行排序。程序要能夠執(zhí)行,要求每個(gè)IPM實(shí)例(所對(duì)應(yīng)的子函數(shù))在被調(diào)用前,其輸入都已確定。因此我們需要對(duì)IPM實(shí)例排序。考慮到IPM實(shí)例數(shù)量通常不大,我們重復(fù)地遍歷這些IPM實(shí)例,并對(duì)它們進(jìn)行標(biāo)號(hào)。開(kāi)始時(shí),所有IPM實(shí)例的標(biāo)號(hào)均為0。如果一個(gè)IPM實(shí)例的某個(gè)輸入端口的value_type為internal,或者該端口為external,但與其連接的src_block IPM實(shí)例已經(jīng)被標(biāo)號(hào),那么這個(gè)輸入端口的值就已經(jīng)確定;如果一個(gè)IPM實(shí)例沒(méi)有輸入端口,或者所有輸入端口的值均已確定,那么就用一個(gè)大于0的整數(shù)值標(biāo)號(hào)該IPM實(shí)例。當(dāng)所有IPM實(shí)例均被標(biāo)號(hào),或者在一次遍歷中沒(méi)有IPM實(shí)例被標(biāo)號(hào),那么整個(gè)排序過(guò)程即告完成。
之后,按標(biāo)號(hào)由小到大的順序?qū)⒚總€(gè)IPM實(shí)例轉(zhuǎn)為對(duì)相應(yīng)子函數(shù)的調(diào)用代碼,并采用系統(tǒng)性的方法來(lái)命名IPM實(shí)例的輸入輸出端口對(duì)應(yīng)的變量,最后以程序文件名作為函數(shù)名,為翻譯好的代碼加上MATLAB函數(shù)定義頭,并保存為同名的.m文件,便完成了翻譯。
例如,經(jīng)過(guò)翻譯之后,由第二節(jié)中示例IPM所得的子函數(shù)以及第三節(jié)中示例IPP對(duì)該子函數(shù)進(jìn)行調(diào)用的MATLAB代碼如下:
function example()
reader_Path_in__ = 'image1.jpg';
Reader_Format_in__ = 'Auto-determined';
[reader_ImageData_out__] = ReadImage
(reader_Path_in__,reader_Format_in__);
function [out1__] = ReadImage(in1__, in2__)
if strcmp(in2__, 'Auto-determined')
out1__ = imread(in1__);
else
out1__ = imread(in1__, in2__);
end
五、開(kāi)展圖像處理編程訓(xùn)練的若干層次
利用本文所設(shè)計(jì)的xGIPL可視化圖像處理編程語(yǔ)言,可以開(kāi)展不同層次的圖像處理編程訓(xùn)練。我們目前所能考慮到的就至少包括以下三個(gè)層次:
(1)使用xGIPL在已有模塊的基礎(chǔ)上進(jìn)行可視化編程。學(xué)生通過(guò)使用現(xiàn)成的IPM來(lái)進(jìn)行可視化編程,能夠了解和掌握解決特定圖像處理任務(wù)的整體性思路,并能夠直觀地感受處理的效果以及程序的性能。這一層次屬于較低的訓(xùn)練層次。
(2)通過(guò)MATLAB編程來(lái)自行實(shí)現(xiàn)關(guān)鍵的IPM,并通過(guò)可視化編程完成應(yīng)用的完整實(shí)現(xiàn)。在該訓(xùn)練層次下,學(xué)生應(yīng)對(duì)MATLAB語(yǔ)言編程有相當(dāng)程度地掌握,并且也能夠完成IPM的設(shè)計(jì),從而能夠針對(duì)特定的圖像處理問(wèn)題自行實(shí)現(xiàn)其中的關(guān)鍵步驟,并完成IPM的封裝。這一層次屬于中等訓(xùn)練層次,能夠鍛煉學(xué)生對(duì)MATLAB這一高級(jí)編程語(yǔ)言的運(yùn)用。
(3)通過(guò)MATLAB的C/C++ MEX編程來(lái)實(shí)現(xiàn)關(guān)鍵的、對(duì)于計(jì)算性能有較高要求的圖像處理功能,從而能夠更高效地完成整個(gè)圖像處理任務(wù)。這一訓(xùn)練層次要求學(xué)生不但熟悉xGIPL和MATLAB語(yǔ)言,而且也熟悉C/C++編程,并且能夠使用C/C++語(yǔ)言進(jìn)行圖像處理算法的低層級(jí)編程,因此屬于最高的訓(xùn)練層次。
參考文獻(xiàn):
[1]翁花群,林元國(guó).基于Visual C++的數(shù)字圖像處理實(shí)驗(yàn)教學(xué)軟件開(kāi)發(fā)[J].廊坊師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2015(1):24-28.
[2]李志欣,卓亞琦.基于OpenCV的數(shù)字圖像處理實(shí)驗(yàn)教學(xué)研究[J].大學(xué)教育,2013(9):42-43.
[3]張帆.基于OpenCV實(shí)踐項(xiàng)目的數(shù)字圖像處理教學(xué)方法探索[J].亞太教育,2015(22):133.
[4]鄭林濤,董永生.ImageJ軟件在數(shù)字圖像處理課程教學(xué)中的應(yīng)用[J].中國(guó)電力教育,2014(8):112-113.
[5]施幫利,韓武紅,楊奕.基于DSP的數(shù)字圖像基本處理實(shí)驗(yàn)教學(xué)探討[J].中國(guó)電力教育,2013(10):171-173.
[6]魯億方,藍(lán)金輝,遲健男.基于DSP的數(shù)字圖像處理實(shí)驗(yàn)的探究[J].實(shí)驗(yàn)技術(shù)與管理,2014(3):109-113.
[7]邱廣萍.MATLABGUIDE在數(shù)字圖像處理教學(xué)中的應(yīng)用[J].價(jià)值工程,2014(3):184,186.
[關(guān)鍵詞]計(jì)算機(jī);軟件開(kāi)發(fā);JAVA編輯語(yǔ)言
中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-914X(2016)11-0370-01
一、JAVA的概述
在計(jì)算機(jī)軟件開(kāi)發(fā)中,編程語(yǔ)言很多,一些傳統(tǒng)的編程語(yǔ)言不僅繁瑣,還無(wú)法適應(yīng)軟件系統(tǒng)的快節(jié)奏發(fā)展。例如VF語(yǔ)言、VC語(yǔ)言和VB語(yǔ)言等,不僅呆板還比較復(fù)雜。在這些語(yǔ)言的對(duì)比之下,JAVA編程語(yǔ)言的優(yōu)點(diǎn)得到突出,其操作簡(jiǎn)單方便,操作系統(tǒng)多樣化,這些不僅滿足網(wǎng)絡(luò)運(yùn)行中的程序編寫,同時(shí)也能夠進(jìn)行應(yīng)用軟件編寫。軟件程序的操作性很強(qiáng),在實(shí)際中應(yīng)用也比較簡(jiǎn)單,因而在計(jì)算機(jī)軟件開(kāi)發(fā)編程中,軟件程序具有重要的作用和巨大的意義。
二、JAVA的特點(diǎn)
(一)泛用性
JAVA作為一種跨平臺(tái)的編程語(yǔ)言,具有良好的泛用性,因而大受軟件開(kāi)發(fā)者的喜愛(ài)。JAVA除了具有良好的泛用性,還具有良好的可移植性。可移植性是指將軟件從一個(gè)環(huán)境轉(zhuǎn)移到另一個(gè)環(huán)境的難易程度。在JAVA開(kāi)發(fā)軟件中,可以有效移植源代碼,這就使得JAVA在任何操作系統(tǒng)中都能發(fā)揮出良好的作用。傳統(tǒng)的C語(yǔ)言在不操作系統(tǒng)中都能保持嚴(yán)謹(jǐn)?shù)恼Z(yǔ)法定義,但編程語(yǔ)言表達(dá)的語(yǔ)意卻是不標(biāo)準(zhǔn)的。因此,在軟件編寫中,JAVA語(yǔ)言比C語(yǔ)言泛用性更為良好。
(二)獨(dú)立性
獨(dú)立性是JAVA編程語(yǔ)言最重要的一個(gè)特點(diǎn)。在實(shí)際的編程應(yīng)用中,JAVA語(yǔ)言的獨(dú)立性特點(diǎn)能夠有效提升自身性能。與解釋型的高級(jí)腳本語(yǔ)言相比較,JAVA語(yǔ)言具有更為快速的運(yùn)行速度。例如在JAVA7.0的版本中,應(yīng)用了升級(jí)類加載類裝入器架構(gòu)和Better type inference,這樣能夠進(jìn)一步提升JAVA編程語(yǔ)言的獨(dú)立性,自身的運(yùn)行速度也得到提高。
(三)簡(jiǎn)易性
與C語(yǔ)言相比,JAVA編程語(yǔ)言較為相似。因此,編程語(yǔ)言軟件開(kāi)發(fā)人員能夠很快的熟悉并掌握J(rèn)AVA的使用方法。例如,在對(duì)JAVA7.0進(jìn)行改進(jìn)的時(shí)候,catch可以被準(zhǔn)許對(duì)語(yǔ)句進(jìn)行捕獲和應(yīng)用,這樣能夠提高編譯器的選擇性和智能性。并且在實(shí)際的應(yīng)用中,JAVA編程語(yǔ)言還沒(méi)有C語(yǔ)言等編程語(yǔ)言中復(fù)雜難懂的預(yù)言特性,具有簡(jiǎn)易的優(yōu)點(diǎn)。同時(shí),運(yùn)用JAVA編程語(yǔ)言,能夠降低軟件開(kāi)發(fā)所占用的系統(tǒng)內(nèi)存,使整體運(yùn)行更為流暢。
三、JAVA的主要技術(shù)
(一)JAVA標(biāo)注
JAVA標(biāo)注是一種主要的編程語(yǔ)言技術(shù),使用該技術(shù),能夠聯(lián)系好JAVA語(yǔ)言的變量、屬性和參數(shù),給整合機(jī)制提供。所以,在用戶使用中,可以利用元素特點(diǎn)、屬性等標(biāo)準(zhǔn)進(jìn)行分類。其中,JAVA Beans是一種重要的技術(shù),能夠獨(dú)立于開(kāi)發(fā)平臺(tái)之外,并且還有安全性和一致性等特點(diǎn),因此JAVA編程語(yǔ)言在開(kāi)發(fā)軟件過(guò)程中,有重要的意義和作用。
(二)JAVA數(shù)據(jù)庫(kù)連接
數(shù)據(jù)庫(kù)連接是在軟件編程中實(shí)現(xiàn)統(tǒng)一訪問(wèn)多種關(guān)系數(shù)據(jù)庫(kù)的一種技術(shù)。在利用JAVA進(jìn)行軟件編寫時(shí),可以先利用語(yǔ)言進(jìn)行編譯和調(diào)試,達(dá)到連接相關(guān)數(shù)據(jù)庫(kù)的目的,也有利于完成后臺(tái)數(shù)據(jù)庫(kù)管理體系的構(gòu)建。同時(shí),這項(xiàng)技術(shù)能夠給程序員提供統(tǒng)一的類和接口。因此,應(yīng)用該項(xiàng)技術(shù),能夠構(gòu)建更為復(fù)雜和高級(jí)的數(shù)據(jù)連接工具,使后臺(tái)數(shù)據(jù)更好的支持程序的運(yùn)行。
(三)JAVA遠(yuǎn)程方法調(diào)用
JAVA遠(yuǎn)程方式調(diào)用的運(yùn)用,能夠更好的實(shí)現(xiàn)分布式應(yīng)用程序。利用類和對(duì)象也使遠(yuǎn)程方法調(diào)用能夠更好的在服務(wù)器和用戶機(jī)之間運(yùn)行。利用這項(xiàng)技術(shù)進(jìn)行程序開(kāi)發(fā),實(shí)現(xiàn)資源信息的整合,調(diào)試好多個(gè)小程序,并分布應(yīng)用,使程序的完整性和安全得到保障。
四、JAVA的實(shí)際應(yīng)用
JAVA編程具有很多獨(dú)特優(yōu)勢(shì),因而在軟件開(kāi)發(fā)中得到廣泛應(yīng)用。JAVA具有的可移植性能夠提升游戲的整體效果。各種各樣的JAVA游戲平臺(tái)逐漸出現(xiàn)在網(wǎng)絡(luò)休閑娛樂(lè)活動(dòng)中。JAVA的可移植性,將其向更為便捷的自動(dòng)終端轉(zhuǎn)移,能夠讓客戶隨時(shí)隨地快捷的享受游戲樂(lè)趣,因此,JAVA編程語(yǔ)言在手機(jī)游戲中發(fā)揮良好作用。此外,JAVA編程語(yǔ)言具有更為良好的適應(yīng)性,能夠很快適應(yīng)不同的操作系統(tǒng),在開(kāi)發(fā)、設(shè)計(jì)、測(cè)試軟件方面,具有巨大作用。Windows操作系統(tǒng)是最為常用的系統(tǒng),在軟件開(kāi)發(fā)中,主要是以Windows操作系統(tǒng)為基礎(chǔ)平臺(tái),在開(kāi)發(fā)和編程過(guò)程中,C++語(yǔ)言,但進(jìn)行平臺(tái)移植時(shí),只有利用JAVA編程語(yǔ)言移植,軟件才能在新的環(huán)境中運(yùn)行,還能實(shí)現(xiàn)跨平臺(tái)的編譯工作。另外,JAVA編程語(yǔ)言還能設(shè)計(jì)動(dòng)態(tài)畫面,例如載入聲音、調(diào)用圖像等。通過(guò)編寫相應(yīng)的JAVA程序代碼,能夠提高程序的生動(dòng)性和形象性。此外,JAVA編程語(yǔ)言編寫的程序具有很好的交互性。隨著我國(guó)計(jì)算機(jī)水平的不斷發(fā)展,JAVA編程語(yǔ)言能夠得到更廣泛的應(yīng)用,其利用自身的優(yōu)勢(shì),能夠解決傳統(tǒng)編程語(yǔ)言的不足和問(wèn)題,使得軟件開(kāi)發(fā)更為簡(jiǎn)單和快捷。由此可見(jiàn),JAVA編程語(yǔ)言在計(jì)算機(jī)軟件開(kāi)發(fā)中具有美好的發(fā)展前景。
五、結(jié)語(yǔ)
隨著生活的不斷進(jìn)步,科技開(kāi)始進(jìn)入生活,人們的生活處處都能接觸到計(jì)算機(jī)。利用計(jì)算進(jìn)行工作,就需要運(yùn)用到相關(guān)的軟件。而JAVA編程語(yǔ)言是一種很好的軟件開(kāi)發(fā)工具,能夠更好的提高軟件開(kāi)發(fā)效率,為人們的工作提供更為豐富的軟件程序。
參考文獻(xiàn)
關(guān)鍵詞 初學(xué)者;計(jì)算機(jī)程序;設(shè)計(jì);理解;編程語(yǔ)言
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671―7597(2013)041-191-02
一個(gè)計(jì)算機(jī)語(yǔ)言初學(xué)者在學(xué)習(xí)進(jìn)步的過(guò)程中,所遇到的最大的困難就應(yīng)該算的上是編程語(yǔ)言選擇的困惑。本人就編程語(yǔ)言開(kāi)始分析。
1 初學(xué)者對(duì)編程語(yǔ)言類型的理解
編程語(yǔ)言的種類繁多,特征明顯。
1.1 從語(yǔ)言的等級(jí)劃分:匯編語(yǔ)言和高級(jí)語(yǔ)言
匯編語(yǔ)言:也就是指在對(duì)機(jī)器進(jìn)行操作的時(shí)候要用到的匯編語(yǔ)言,與機(jī)器語(yǔ)言類似,這種語(yǔ)言的對(duì)應(yīng)者其實(shí)就是對(duì)硬件的操作。硬件要做的每一個(gè)指令都要由編程者用命令的形式以匯編語(yǔ)言表現(xiàn)出來(lái)。匯編語(yǔ)言就是像漢字一般,每一個(gè)語(yǔ)言都代表著一個(gè)細(xì)微的動(dòng)作,匯編這要做的就是將這些命令組編起來(lái),匯編成一個(gè)動(dòng)作的指令,從而達(dá)到執(zhí)行動(dòng)作的效果。機(jī)器對(duì)匯編的要求不僅很簡(jiǎn)單,其執(zhí)行命令的工作效率也是非常的迅速。然而匯編語(yǔ)言對(duì)編程者硬件知識(shí)的理解要求更高,同時(shí)各種匯編語(yǔ)言的表述又各不相同。
高級(jí)語(yǔ)言:匯編語(yǔ)言的創(chuàng)新發(fā)展型編程語(yǔ)言,變得簡(jiǎn)單更易于學(xué)習(xí)和操作。編程的種類有很多,其可以自動(dòng)篩選完成這項(xiàng)工作所需要的程序,從而去除掉那些多余的工作程序,使其編程更加簡(jiǎn)單。不僅加快了命令的執(zhí)行速度,還降低了對(duì)編程者的專業(yè)素質(zhì)要求。
1.2 從語(yǔ)言的執(zhí)行方式劃分:解釋語(yǔ)言和編譯語(yǔ)言
解釋語(yǔ)言:這種操作就像是一臺(tái)自動(dòng)翻譯機(jī),不過(guò)其主要的工作并不是漢語(yǔ)翻譯成英語(yǔ),而是將應(yīng)用程序源代碼需要對(duì)執(zhí)行過(guò)程進(jìn)行逐一“翻譯”為編程所要用到的專業(yè)目標(biāo)代碼。由于,這種執(zhí)行方式繁瑣復(fù)雜,還需要進(jìn)行編譯解釋,大大加大了工作的時(shí)間,從而降低了工作的效率,而且在操作過(guò)程中有一個(gè)明顯的缺陷:不可以獨(dú)立的完成工作,必須與解釋器相互幫助。當(dāng)然,既然這種執(zhí)行方式能推廣應(yīng)用這么長(zhǎng)時(shí)間,也有它的優(yōu)勢(shì):對(duì)應(yīng)用程序的調(diào)整比較方便,可以隨時(shí)對(duì)其進(jìn)行修改,其有一個(gè)顯著的例子:腳本語(yǔ)言,在腳本語(yǔ)言中范圍中有發(fā)展的比較大的有Vbscript.Javascript.Perl.Python等。
編譯語(yǔ)言:這個(gè)也是要將程序源代碼“翻譯”為機(jī)器語(yǔ)言,但是編譯語(yǔ)言與上文中不同的就是翻譯必須要在源程序應(yīng)用之前。這種方式的特點(diǎn)正好與解釋語(yǔ)言相反,它可以完全脫離語(yǔ)言環(huán)境,獨(dú)立性強(qiáng),但是其修改方面再次編譯才可以。由于現(xiàn)在編譯語(yǔ)言的種類非常廣,像是C.C++.Delphi之類的都已經(jīng)被劃分成編譯型一類。
在執(zhí)行方式中,有一個(gè)很特別的種類:Java。這種方式雖說(shuō)也要翻譯,然而由于字節(jié)碼,這就是要將其“翻譯”成偽碼,才可以再將其完成執(zhí)行。
1.3 從面向?qū)ο髣澐郑航Y(jié)構(gòu)化語(yǔ)言和面向?qū)ο笳Z(yǔ)言
在此領(lǐng)域中,有兩種思想:面向過(guò)程和面向?qū)ο蟆C嫦蜻^(guò)程的典型的應(yīng)用就是C.Pascal語(yǔ)言,這種面向過(guò)程的方式就會(huì)在設(shè)置的過(guò)程匯總制定較多的定義函數(shù)和結(jié)構(gòu)體。
面向?qū)ο蟮脑捑褪侵该鎸?duì)某一軟件的時(shí)候思想附加于軟件設(shè)置上,這種方式在領(lǐng)域中稱作OO方法。構(gòu)選機(jī)制是以繼承為主,全方位的圍繞對(duì)象進(jìn)行刻畫,構(gòu)建與其相關(guān)的軟件系統(tǒng)。上文中提到了Java.C++都屬于面向?qū)ο蟮恼Z(yǔ)言。
其實(shí),對(duì)這個(gè)專業(yè)了解足夠多的人都明白,SQL必須與其他高級(jí)語(yǔ)言相結(jié)合,才可以做出更好的成績(jī)。無(wú)論是用哪一個(gè)高級(jí)編程語(yǔ)言來(lái)對(duì)軟件進(jìn)行開(kāi)發(fā),其存儲(chǔ)數(shù)據(jù)的時(shí)候都必須要用到數(shù)據(jù)庫(kù),也就是離不開(kāi)SQL的幫助。
2 編程語(yǔ)言應(yīng)用領(lǐng)域
當(dāng)前應(yīng)用廣泛的編程語(yǔ)言種類較多,由于其工作效率不同,但是無(wú)法用好與不好來(lái)評(píng)價(jià)他們。只能說(shuō)對(duì)設(shè)計(jì)不同層次的程序,所需要的語(yǔ)言就可以不一樣。
2.1 Java開(kāi)發(fā)應(yīng)用領(lǐng)域
據(jù)統(tǒng)計(jì),Java的使用情況Web所占的比例最大。正是因?yàn)镴ava對(duì)企業(yè)的場(chǎng)景應(yīng)用有很大的作用,而且由于其現(xiàn)在長(zhǎng)期的應(yīng)用改革,Web發(fā)展已經(jīng)離不開(kāi)Java了。由于長(zhǎng)期的發(fā)展,此技術(shù)也已經(jīng)發(fā)展成熟,高峰期已經(jīng)達(dá)到。
2.2 C語(yǔ)言的應(yīng)用范圍
C語(yǔ)言可以用到的地方很廣泛,除了嵌入式系統(tǒng)等領(lǐng)域,還可以為高層軟件所服務(wù)。
2.3 Visual Basic的各種應(yīng)用
這種編程語(yǔ)言可以大范圍的應(yīng)用到各種實(shí)際運(yùn)用中,就例如:界面設(shè)計(jì).文字及文件處理.圖形處理等方面。
2.4 PHP隨互聯(lián)網(wǎng)發(fā)展,應(yīng)用領(lǐng)域?qū)挿?/p>
很多中小型的網(wǎng)站是其最主要的使用者,即使是很多大型網(wǎng)站在設(shè)計(jì)的時(shí)候也是經(jīng)常用到,或者說(shuō)是在企業(yè)辦公中也是應(yīng)用廣泛。
2.5 C++在以下領(lǐng)域,有著根本性的優(yōu)勢(shì)
C++經(jīng)常應(yīng)用于的一些領(lǐng)域非常廣,而就是因?yàn)槠涮攸c(diǎn)十分的明顯,尤其是對(duì)低級(jí)系統(tǒng)程序設(shè)計(jì).高級(jí)系統(tǒng)程序設(shè)計(jì).嵌入式程序設(shè)計(jì).數(shù)值科學(xué)計(jì)算.通用程序設(shè)計(jì)以及混合系統(tǒng)設(shè)計(jì)等具有很明顯的應(yīng)用效果。
2.6 其他語(yǔ)言
C#主要用于開(kāi)發(fā)WEB應(yīng)用,與Java一樣的,是競(jìng)爭(zhēng)的兩方面,這也是微軟設(shè)計(jì)C#的初忠,C#雖然有其優(yōu)點(diǎn),但是在構(gòu)架方式與其類型相似的語(yǔ)言相比而言,并不是受很多公司的歡迎,尤其是在制作C/S的商品軟件的時(shí)候。
Delphi的技術(shù)十分成熟:正是由于其發(fā)展時(shí)間夠長(zhǎng),技術(shù)足夠成熟,數(shù)據(jù)庫(kù)做夠強(qiáng)大,特別是在其和Windows編程相結(jié)合的時(shí)候,更是受設(shè)計(jì)數(shù)據(jù)庫(kù)相關(guān)的應(yīng)用軟件公司的青睞。
總的來(lái)說(shuō),匯編語(yǔ)言沒(méi)有高級(jí)語(yǔ)言使用快捷方便,執(zhí)行效率焦高;結(jié)構(gòu)化與面向?qū)ο笙啾容^,面向?qū)ο笳Z(yǔ)言又略勝一籌;編譯語(yǔ)言要比腳本語(yǔ)言復(fù)雜。
參考文獻(xiàn)
[1]王汝傳.計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展[J].電子工程師,1999(11):1-5.
[2]陳冬火,姚望舒.“計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言”教學(xué)芻議[J].計(jì)算機(jī)教育,2009(10):18-20.