王博
摘 要 隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,編程技術(shù)在軟件開(kāi)發(fā)過(guò)程中演繹著舉足輕重的角色,其作用直接決定著軟件質(zhì)量水準(zhǔn)的高低,傳統(tǒng)的單語(yǔ)言編程已經(jīng)無(wú)法滿足日新月異的軟件開(kāi)發(fā)需求,因此,將多種編程語(yǔ)言融合到一起,取長(zhǎng)補(bǔ)短,是今后軟件開(kāi)發(fā)的趨勢(shì)和方向。本文簡(jiǎn)要介紹了多語(yǔ)言編程技術(shù),并具體分析了VB(Visual Basic)和VC(Visual C++)混合編程在軟件開(kāi)發(fā)中的應(yīng)用。
關(guān)鍵詞 多語(yǔ)言編程 軟件開(kāi)發(fā) 應(yīng)用
中圖分類號(hào):TP31文獻(xiàn)標(biāo)識(shí)碼:A
隨著計(jì)算機(jī)技術(shù)不斷更新和進(jìn)步,編程技術(shù)在軟件開(kāi)發(fā)過(guò)程中扮演者十分重要的角色,在以往的軟件開(kāi)發(fā),往往采用單一語(yǔ)言進(jìn)行編制程序,例如FORTRAN、VC、VB等,然而編程語(yǔ)言各有優(yōu)缺點(diǎn),純粹使用某一種語(yǔ)言往往會(huì)影響軟件開(kāi)發(fā)速度和質(zhì)量。基于這一點(diǎn)地考慮,很多程序員開(kāi)始采用多語(yǔ)言編程的方法,各取所長(zhǎng)、相互調(diào)用,從而來(lái)實(shí)現(xiàn)軟件開(kāi)發(fā)中各項(xiàng)設(shè)計(jì)和功能,因此,多語(yǔ)言編程能夠提高軟件開(kāi)發(fā)的水準(zhǔn),增加開(kāi)發(fā)人員的工作效率,必將成為今后軟件開(kāi)發(fā)中一項(xiàng)不可或缺的重要技術(shù)。
1多語(yǔ)言編程技術(shù)
在軟件開(kāi)發(fā)設(shè)計(jì)中,若單一使用某一種語(yǔ)言編程很難將軟件功能完全實(shí)現(xiàn),為此,多語(yǔ)言編程技術(shù)將各種語(yǔ)言糅合到一起,最大限度地實(shí)現(xiàn)軟件的各項(xiàng)功能,然而由于各項(xiàng)語(yǔ)言編程的函數(shù)關(guān)系和映射條件并不完全相同。因此、多語(yǔ)言編程技術(shù)需要著重解決其調(diào)用規(guī)制和字符轉(zhuǎn)換的問(wèn)題,從而達(dá)到多種語(yǔ)言在軟件開(kāi)發(fā)中的協(xié)調(diào)一致。
(1)調(diào)用規(guī)則
不同類型的編程語(yǔ)言有著其獨(dú)特的程序類型,其調(diào)用函數(shù)不盡相同,運(yùn)算意義也存在著很大的差異,例如C++編程語(yǔ)言一般使用FUNCTION函數(shù),VB可能調(diào)用API函數(shù),函數(shù)的調(diào)用規(guī)則和類型不一樣,在多語(yǔ)言編程過(guò)程中就會(huì)出現(xiàn)錯(cuò)誤代碼,因?yàn)椴煌瘮?shù)的調(diào)用規(guī)則會(huì)直接改變編程語(yǔ)言的運(yùn)算步奏和規(guī)律,直接影響程序設(shè)計(jì)者的初衷。因此,在多語(yǔ)言編程過(guò)程中,需要定義某一種特定函數(shù)來(lái)進(jìn)行轉(zhuǎn)換,例如在FORTRAN語(yǔ)言中可以采用INTERFACE來(lái)定義調(diào)用規(guī)則之間的轉(zhuǎn)換,確保各種語(yǔ)言程序能夠按照設(shè)計(jì)者的意向工作,從而實(shí)現(xiàn)軟件開(kāi)發(fā)的功能。
(2)字符轉(zhuǎn)換
每種編程語(yǔ)言對(duì)字符的定義有著其特有含義,一般來(lái)說(shuō),不同編程語(yǔ)言之間的字符含義往往并不相同,甚至有些編程語(yǔ)言的特殊字符在另一種編程語(yǔ)言中根本就不存在,字符里的信息傳遞就會(huì)受到阻礙,難以實(shí)現(xiàn)編程目標(biāo)。為此,在多語(yǔ)言編程過(guò)程中要想實(shí)現(xiàn)字符間信息涵義的傳遞,可以采用字符轉(zhuǎn)換代碼將字符含義進(jìn)行轉(zhuǎn)換傳遞,例如最早的編程語(yǔ)言FORTRAN中就沒(méi)有空結(jié)束符,但是一些其他編程語(yǔ)言中存在特定含義的空結(jié)束符,C語(yǔ)言中就以(‘\0)來(lái)表示空結(jié)束符,這就需要編寫(xiě)一定的轉(zhuǎn)換代碼進(jìn)行字符轉(zhuǎn)換,在字符轉(zhuǎn)換的同時(shí)進(jìn)行信息的正確傳遞。
2以VB和VC++為例分析多語(yǔ)言編程在軟件開(kāi)發(fā)中的應(yīng)用
Visual Basic和Visual C++都是常用的可視化程序開(kāi)發(fā)語(yǔ)言,Visual C++能夠創(chuàng)建短小高效且運(yùn)行速度快的代碼,而Visual Basic提供了最迅速最簡(jiǎn)潔的應(yīng)用平臺(tái)。因此,將VB和VC++兩種編程進(jìn)行融合,以VB創(chuàng)建界面,VC++編寫(xiě)具體程序和代碼,不僅能夠提高程序的速率,而且還增加了程序運(yùn)行的效率。
(1)VB和VC++多語(yǔ)言編程方式
VB和VC++融合編程的方式多種多樣,就以目前實(shí)際編程效果而言,采用VC++語(yǔ)言生成動(dòng)態(tài)鏈接庫(kù),再在VB界面中調(diào)用動(dòng)態(tài)鏈接庫(kù)導(dǎo)出函數(shù)的方法相對(duì)來(lái)說(shuō)是比較可行的。具體一點(diǎn)講,首先在VC++開(kāi)發(fā)環(huán)境下新建一個(gè)Win64動(dòng)態(tài)鏈接庫(kù)(簡(jiǎn)稱DLL),例如chdll工程動(dòng)態(tài)鏈接庫(kù),并編寫(xiě)一定的函數(shù)聲明,最終會(huì)生成chdll.dll文件即可,然后再VB工程中調(diào)用剛生成的chdll.dll文件中的函數(shù),在調(diào)用之前還需進(jìn)行函數(shù)聲明,之后VB就可以對(duì)這個(gè)函數(shù)進(jìn)行調(diào)用,其方法和調(diào)用VB自己函數(shù)時(shí)一樣。通過(guò)上述方法,在VC++編程語(yǔ)言環(huán)境下建立動(dòng)態(tài)鏈接庫(kù),再通過(guò)VB調(diào)用動(dòng)態(tài)鏈接庫(kù)中的函數(shù),從而保證VC++高效精悍的函數(shù)代碼與VB簡(jiǎn)潔迅速的工作界面有機(jī)的結(jié)合在一起,最終提高代碼的效率和質(zhì)量。
(2)VB和VC++多語(yǔ)言編程在軟件開(kāi)發(fā)中的應(yīng)用實(shí)例
PKPM 3DMODEL軟件在模型的建造、動(dòng)態(tài)實(shí)時(shí)操作以及三維真實(shí)感顯示等方面有著極為顯著的功能,已經(jīng)被廣泛應(yīng)用于全國(guó)許多的建筑設(shè)計(jì)單位所采用。最初在開(kāi)發(fā)該軟件時(shí)僅采用Visual Basic作為開(kāi)發(fā)工具,但在實(shí)際模型的測(cè)試過(guò)程中存在很多問(wèn)題,例如圖片量大,三維圖形的面片數(shù)較多時(shí),軟件的運(yùn)行速率就相當(dāng)緩慢,軟件對(duì)于鼠標(biāo)的點(diǎn)擊往往會(huì)延遲幾秒,這種軟件品質(zhì)很難得到操作者的認(rèn)可。后來(lái)通過(guò)一段時(shí)間的摸索研究,采用VB和VC++聯(lián)用的多語(yǔ)言編程方法,將影響軟件運(yùn)行速率的函數(shù)、映射等用VC++語(yǔ)言進(jìn)行程序編寫(xiě),并匯總到動(dòng)態(tài)鏈接庫(kù)中,最后在VB開(kāi)發(fā)環(huán)境中調(diào)用,一下子就解決了困擾多時(shí)的難題。
總而言之,多語(yǔ)言編程技術(shù)可以充分利用各種編程語(yǔ)言的優(yōu)點(diǎn)和長(zhǎng)處,并將其高度糅合到一起,采用動(dòng)態(tài)鏈接庫(kù)技術(shù),在不同語(yǔ)言編程開(kāi)發(fā)工程上進(jìn)行函數(shù)調(diào)用,從而彌補(bǔ)單一語(yǔ)言編程所帶來(lái)的缺陷,隨著計(jì)算機(jī)技術(shù)的革新,這種編程技術(shù)必將得到突飛猛進(jìn)地發(fā)展。
參考文獻(xiàn)
[1] 周家紀(jì).多語(yǔ)言編程技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用[J].新疆大學(xué)學(xué)報(bào),2002(05).
[2] 田源.交換編程技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用[J].電腦知識(shí)與技術(shù),2006(07).