薄曉琳
【摘 要】因?yàn)橛?jì)算機(jī)技術(shù)更新?lián)Q代速度加快,社會發(fā)展對計(jì)算機(jī)程序開發(fā)的要求跟著變高,那么如果想實(shí)現(xiàn)軟件的高效開發(fā),需要注意常用計(jì)算機(jī)編程語言的選用技巧。在本文中提到了三種比較常見的計(jì)算機(jī)編程語言,分別為C語言、匯編語言以及JAVA語言。對計(jì)算機(jī)編程語言類型進(jìn)行分析與對比,研究編程原因的選用原則與選用技巧,并對Linux系統(tǒng)下的計(jì)算機(jī)C語言編程選用實(shí)例分析。
【關(guān)鍵詞】計(jì)算機(jī)編程語言;選用技巧;探析
0 前言
計(jì)算機(jī)編程語言的種類諸多,可以被分為機(jī)器語言、高級語言以及匯編語言。其中,每一門的計(jì)算機(jī)編程語言都存在著一定的優(yōu)缺點(diǎn)。程序員在進(jìn)行實(shí)際的程序編寫時,為了提高計(jì)算機(jī)軟件的開發(fā)效率,提升用戶的軟件使用性能,需要有一定的語言選用技巧,進(jìn)而實(shí)現(xiàn)不同語言之間的互補(bǔ)。為此,下文通過實(shí)例對計(jì)算機(jī)編程語言的選用技巧來分析一下。
1 計(jì)算機(jī)編程語言類型分析與對比
1.1 C語言
C語言是一種使用比較靈活的語言,結(jié)構(gòu)簡單,能夠?qū)崿F(xiàn)結(jié)構(gòu)化的程序設(shè)計(jì)語言,擁有穩(wěn)定的結(jié)構(gòu)化控制編程語句,屬于一種常見的中級語言。C語言共有34匯種運(yùn)算符,涵蓋內(nèi)容比較全面。C語言具有以下特點(diǎn):1)結(jié)構(gòu)緊湊,形式簡單,語句使用比較方便且靈活;2)C語言擁有所有高級語言和低級語言的特性,使用范圍比較廣;3)語言機(jī)構(gòu)化,數(shù)據(jù)類型比較多;4)在圖形方面功能比較強(qiáng)大,支持顯示以及驅(qū)動器的使用,具備計(jì)算功能以及邏輯判斷功能,能夠?qū)崿F(xiàn)決策;5)C語言能夠生成質(zhì)量高的目標(biāo)代碼,高速執(zhí)行程序;
1.2 匯編語言
匯編語言是對計(jì)算機(jī)系統(tǒng)中的程序進(jìn)行匯編工作,匯編程序利用計(jì)算機(jī)的硬件特性,對其內(nèi)部的硬件語言進(jìn)行直接控制。匯編語言在計(jì)算機(jī)系統(tǒng)中的執(zhí)行效率比較高,能夠編寫與調(diào)試結(jié)構(gòu)復(fù)雜的程序。匯編語言含有指令,這些指令由對應(yīng)含義的助憶符表達(dá),能夠直接使用CPU中的資源。匯編語言與其他語言相比具有以下特性:1)在系統(tǒng)中的執(zhí)行程序效率較高;2)編寫程序復(fù)雜;3)具有系統(tǒng)調(diào)試上的復(fù)雜性。
1.3 java語言
Java語言屬于一項(xiàng)嵌入式系統(tǒng)的專門設(shè)計(jì)產(chǎn)品,隨著互聯(lián)網(wǎng)不斷發(fā)展,Java迅速成為了一種計(jì)算軟件開發(fā)編程語言。在移動互聯(lián)網(wǎng)以及全球云計(jì)算的產(chǎn)業(yè)環(huán)境下,基于計(jì)算機(jī)軟件開發(fā)的Java語言展現(xiàn)出了非常大的優(yōu)勢,發(fā)展空間巨大。它是一類面向?qū)ο蟮木幊陶Z言,在編寫過程中,將整體性難編寫的內(nèi)容簡單歸類為幾個單一模塊,針對不同模塊來選擇不同的方案進(jìn)行編程。利用Java語言對小模塊進(jìn)行編程,有效實(shí)現(xiàn)模塊功能分解。Java語言具有較好的移植性,在Web站點(diǎn)中實(shí)現(xiàn)應(yīng)用程序的靈活下載,幫助用戶在網(wǎng)頁上下載圖片、圖像以及HTML等,為用戶提供便利。此外,它當(dāng)中的數(shù)據(jù)類型長度有固定要求。
2 計(jì)算機(jī)編程語言選用
2.1 選用原則
在進(jìn)行編程語言的選擇時,首先著重看以下原則:
第一,對軟件運(yùn)行的環(huán)境進(jìn)行充分考量,當(dāng)軟件中用到匯編語言時,需要與之對應(yīng)運(yùn)行的硬件環(huán)境。不僅對硬件環(huán)境進(jìn)行考慮,還需要對硬件技術(shù)的更新頻率進(jìn)行考慮,選用硬件更新速度比較快的環(huán)境比較適合匯編語言。如果硬件環(huán)境選擇不當(dāng),將會造成程度語言與環(huán)境更新沖突。因此,當(dāng)實(shí)際的編程語言進(jìn)行選擇時,需要對環(huán)境的調(diào)整性問題進(jìn)行考慮。
第二,對軟件運(yùn)行平臺的支持性進(jìn)行考量,在平臺的支持下,能夠通過語言的某種優(yōu)勢進(jìn)行語言選用,實(shí)現(xiàn)編程語言優(yōu)勢軟件運(yùn)行環(huán)境中的最大程度展示。
第三,程序員在進(jìn)行計(jì)算機(jī)編程語言的選擇時,需要對自己比較熟練的語言進(jìn)行篩選,由于每一個人的程序運(yùn)用習(xí)慣不同。因此,選用了自己比較熟練的語言能夠加快編程速度。另一方面有利于程序后期的修改與維護(hù)。
第四,對軟件開發(fā)成本進(jìn)行充分考慮,由于不同類型編程語言實(shí)現(xiàn)的成本有一定的差異性,因此,程序員在進(jìn)行后期項(xiàng)目修改時要根據(jù)成本進(jìn)行語言選擇。
第五,編程語言的選擇需要根據(jù)實(shí)際的軟件市場需求,結(jié)合編程語言的特點(diǎn),科學(xué)合理的選擇編程語言。在少許特殊性的軟件開發(fā)中,必須針對實(shí)際的工作選用專業(yè)性的編程語言。首先需要對軟件市場進(jìn)行充分的調(diào)查,做到編程有目標(biāo)相性,避免盲目選用語言。這樣做不僅能夠節(jié)約時間,還能夠集較大程度的提升編程效率,進(jìn)而實(shí)編程過程中的小過錯。
2.2 選用技巧
通過對C語言、匯編語言以及java語言的結(jié)構(gòu)進(jìn)行對比發(fā)現(xiàn),匯編語言結(jié)構(gòu)比較簡單,而C語言和java語言的結(jié)構(gòu)相對來說比較復(fù)雜。而匯編語言同樣是一種廣泛應(yīng)用的語言,雖然它屬于低級的語言,也就說我們多說的二進(jìn)制編碼。匯編語言將一些機(jī)器碼匯集起來,變成自己的一套語言,在系統(tǒng)中的執(zhí)行效力教較高。匯編語言與C語言以及java語言相比更加的直接,能夠?qū)τ布υ挘菑膶?shí)例中發(fā)現(xiàn),其不易掌握。由于匯編語言的指令過于基礎(chǔ),不利于人們理解與實(shí)際使用,比較適合一些程序引導(dǎo)以及初始化程序的編寫。而相比之下,C語言的程序結(jié)構(gòu)以及難以程度適中,但是與匯編語言對比執(zhí)行速度稍遜一籌。而java語言與以上兩種語言相比,主要是面向?qū)ο蟮膽?yīng)用程序開發(fā),對對象進(jìn)行圖像和事件的描述與處理。Java語言在進(jìn)行設(shè)計(jì)交互操作中,實(shí)現(xiàn)定向交互和選擇交互,實(shí)現(xiàn)操程序的可視化。
3 Linux系統(tǒng)下的計(jì)算機(jī)C語言編程選用實(shí)例分析
3.1 Linux系統(tǒng)概述
Linux系統(tǒng)是一種自由且開放的源碼系統(tǒng),同時也是一套能夠免費(fèi)試用的Unix操作系統(tǒng),具有較強(qiáng)的自由傳播性能。目前,在軟件市場中存在較多的Unix版本,它們都能實(shí)現(xiàn)Unix內(nèi)核,在路由器、手機(jī)、平板電腦等設(shè)備中廣泛使用。此外該系統(tǒng)完美的繼承了以網(wǎng)絡(luò)為發(fā)展核心的設(shè)計(jì)思想,用戶操作系統(tǒng)比較穩(wěn)定,能夠有效支持UDP、TCP、ATM以及FDDI等以太網(wǎng)協(xié)議和連接方案。這個系統(tǒng)中為每一個軟件都設(shè)計(jì)了特定的用途,并且系統(tǒng)中任何一部分都可以被總結(jié)為一個文件,例如軟件、硬件以及命令等,都有自身的屬性以及相應(yīng)的類型文件。
它之所以被公認(rèn)為Unix系統(tǒng),原因是在程序運(yùn)行的某種程度上來說,這兩者基本思想驚人的相似。在日常的實(shí)際應(yīng)用中,Linux系統(tǒng)不單一是服務(wù)器的操作系統(tǒng),還是運(yùn)用靈活以及性價(jià)比高的可設(shè)置設(shè)備,將其應(yīng)用在嵌入式系統(tǒng)中。不僅能夠?qū)崿F(xiàn)較好的網(wǎng)絡(luò)管理以及網(wǎng)絡(luò)安全功能,還是個大操作系統(tǒng)的重要技術(shù)支持。
3.2 源程序編譯
在Linux系統(tǒng)下,對C語言進(jìn)行源代碼的編譯,需要使用gee編譯器。一般來說,gee編譯器有很多種選擇,程序員只需要對其中比較主要的幾項(xiàng)進(jìn)行選擇,便能實(shí)現(xiàn)簡單的源程序編譯。gee程序編譯器大多有三方面的表現(xiàn):第一,用gee編譯器實(shí)行編譯時,在編程最后需要關(guān)聯(lián)信息的調(diào)試,一般用—g選項(xiàng)對其進(jìn)行呈現(xiàn);第二,當(dāng)文件執(zhí)行時,采用—O選項(xiàng)呈現(xiàn)它;第三,對目標(biāo)代碼進(jìn)行輸出時,采用—e 選項(xiàng)呈現(xiàn)。例如有一個簡單的程序如下:
(happy.c):
Int main (int arge.char**argv)
{printf(“Happy Linux\n”)}
當(dāng)對以上源代碼進(jìn)行編譯時,先一步執(zhí)行g(shù)ee-o happy happy.c。Gee編譯器就會生成一個可以被執(zhí)行的文件happy,此時執(zhí)行/happy就可以看到相應(yīng)的輸出結(jié)果。根據(jù)以上步驟進(jìn)行編譯后,會輸出的可執(zhí)行文件名是happy,happy.c就是需要源程序文件。
3.3 編寫Makefile工具技巧
Makefile中制定了一系列的編譯規(guī)則,第一,對文件的翻譯的先后順序進(jìn)行限定,明確規(guī)定了哪些文件需要先被翻譯,哪些文件需要被反復(fù)翻譯,哪些文件需要在最后進(jìn)行翻譯。并對程序段比較繁瑣的操作進(jìn)行指令執(zhí)行;第二,它最大的優(yōu)勢就是能夠進(jìn)行程序的自動編譯,在編譯的前提只需要一個簡單明確Make指令,系統(tǒng)便能識別指令之后進(jìn)行自動的程序編譯。在這樣的技術(shù)支持下,提高了軟件開發(fā)的實(shí)際效率;第三,該工具的使用在源程序眾多的時候作用更加的突出,當(dāng)面對幾百個或者上千個的源程序時,為了實(shí)現(xiàn)軟件編譯的高效性,需要實(shí)行具有針對性的make指令。在進(jìn)行指令執(zhí)行前,需要編寫Makefile 文件,這個文件的編寫具有一定的技巧性,一般格式有三類,文件中前一行是程序之間的關(guān)系,后一行是程序運(yùn)行的規(guī)則。$、$<以及$@是Makefile三個比較常見的變量。通過以上三個變量進(jìn)行文件簡化內(nèi)容如下:main.o:main.c mytooll.h mytool 12.h,可以被簡化為gee-c$<。
3.4 程序庫創(chuàng)建
在實(shí)際的程序編寫時,不存在一次性成功的現(xiàn)象,出現(xiàn)程序上的錯誤無可厚非。在程序結(jié)束時對程序進(jìn)行調(diào)試十分重要。在一般情況下,Linux系統(tǒng)主要包含了gdb的CNU程序調(diào)試,該程序能夠?qū)崿F(xiàn)程序運(yùn)行中的觀測,以及對內(nèi)部結(jié)構(gòu)的使用情況分析。在Linux系統(tǒng)下,能夠熟練悉知程序庫的創(chuàng)建以及實(shí)際應(yīng)用至關(guān)重要。程序庫大多分為以下三大類:
第一,程序共享庫;創(chuàng)建程序共享庫,可以采用b.c以及a.c對共享庫進(jìn)行創(chuàng)建。
第二,數(shù)據(jù)動態(tài)加載庫;動態(tài)數(shù)據(jù)加載庫的創(chuàng)建,發(fā)現(xiàn)動態(tài)加載路中的所包含的數(shù)據(jù)格式與共享庫沒有實(shí)質(zhì)的差別,但是這兩者依然存在很多的差異性。其中最為明顯且主要的差異性為,程序共享庫只是在實(shí)際運(yùn)行中進(jìn)行加載,而數(shù)據(jù)動態(tài)加載庫則不然,并不是在程序運(yùn)行時進(jìn)行加載。數(shù)據(jù)動態(tài)加載庫本身存在一組特殊的API,能夠?qū)崿F(xiàn)動態(tài)加載庫的開啟,對相應(yīng)的數(shù)據(jù)字符進(jìn)行查找,并對程序中出現(xiàn)的錯誤進(jìn)行有效更正與處理。此外,改組特殊的API還可以實(shí)現(xiàn)動態(tài)加載庫的系統(tǒng)關(guān)閉。
第三,靜態(tài)庫。靜態(tài)庫的創(chuàng)建于動態(tài)加載庫的創(chuàng)建相區(qū)別,例如創(chuàng)建庫文件為libhappy.c:#include void happy () {printf (“happy ,welcome to our home!”)}。按照以上的程序名,首先能夠在靜態(tài)庫中建立相應(yīng)的文件,然后,實(shí)現(xiàn)靜態(tài)庫文件的建立,$gee-e lihappy-o lihappy.o $ ar rc s lib happy .a 。在該段的程序中,rcs中的字母含義分別為:r是指將模塊加入到靜態(tài)庫中來,C 則表示靜態(tài)庫的創(chuàng)建,s表示索引。
4 結(jié)論
編程語言是計(jì)算機(jī)軟件中開發(fā)的必要工具,在軟件開發(fā)與應(yīng)用占據(jù)核心的地位。在實(shí)際的軟件開發(fā)中,編程語言類型眾多,選用合理的編程語言能夠有效提升編程效率。要想提高計(jì)算機(jī)的高效開發(fā),需要注意常用的編程語言選用原則與技巧。為此,本文通過對編程語言類型分析與對比,以Linux系統(tǒng)下的計(jì)算機(jī)C語言編程技巧為例進(jìn)行分析,希望能夠在計(jì)算機(jī)編程語言選用上提供幫助。
【參考文獻(xiàn)】
[1]鄧昶.常用計(jì)算機(jī)編程語言的分析和選用技巧探析[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014,19:75-76.
[2]崔國鵬.計(jì)算機(jī)自動測量控制系統(tǒng)軟件設(shè)計(jì)方法研究[D].西北工業(yè)大學(xué),2015.
[責(zé)任編輯:楊玉潔]