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