關(guān)于自動生成代碼工具的構(gòu)想
摘要: 軟件技術(shù)的應用越來越廣泛,為降低編程入門門檻,提高編程效率,文章設(shè)想實現(xiàn)一款自動生成代碼的工具。
關(guān)鍵詞:代碼自動生成;模板;智能
隨著軟件進入人類社會以來,軟件產(chǎn)品需求一直處于增長的狀態(tài) 面對如此大的軟件需求.如何提高軟件的生產(chǎn)效率。降低軟件開發(fā)的周期與成本,便成為軟件產(chǎn)業(yè)界所關(guān)注的焦點, 為此業(yè)內(nèi)人士提出了兩種解決方案。 一是采用更高等級的開發(fā)語言來提高開發(fā)的效率,二是采用構(gòu)件和復用技術(shù)。 而源代碼自動生成技術(shù)可以說構(gòu)件和復用技術(shù)的核心與基礎(chǔ)。
源代碼自動生成技術(shù)的應用領(lǐng)域相當?shù)膹V泛,從嵌入式代碼的生成到軟件工程中UML圖的產(chǎn)生都發(fā)揮了它重要的作用。在商業(yè)領(lǐng)域,在代碼自動生成技術(shù)上走得最遠的恐怕就是微軟了。從很久以,微軟的各種開發(fā)工具(甚至包括像0ffice這類非嚴格意義上的開發(fā)工具)就都提供了豐富的代碼自動生成功能。這些功能體現(xiàn)在各種各樣的開發(fā)向?qū)?,如著名的MFC應用程序框架、VisualBasic的“所見即所得”開發(fā)環(huán)境等等本文根嵌入式方面的實際需求設(shè)計并實現(xiàn)了一種基于模板的代碼自動生成工具。它將被應用到嵌入式組件中去, 該工具是使用基于XML描述的模板。用XMLSchema來定義文法,并使用專門的詞法分析器來分析模板。
1系統(tǒng)設(shè)計
本工具采用了一種基于模板語言的源代碼自動生成技術(shù), 它能夠通過用戶定制或指定的模板來生成個性化的代碼。這里所說的模板是用戶想要生成的代碼的原型,它代表了代碼生成過程中的共性 。共性是指在代碼生成過程中已經(jīng)確定的那部分,即不需要進行修改的那部分代碼。而與之相對的則是可變性。所謂可變性是指在代碼生成過程中需要用戶根據(jù)自己需要進行配置的那部分代。具體到工具內(nèi)部,主要由三個部分組成:模板生成、模板驗證解析、代碼生成。源代碼生成工具的工作模型。
1.1模板生成
模板生成部分主要完成的功能是將已有的源代碼轉(zhuǎn)換成為可以供用戶配置的模板,而如何標記原始的代碼是實現(xiàn)模板生成部分功能的關(guān)鍵,經(jīng)過多方面的研究與比較本工具采用了XML語言來標記現(xiàn)有的源代碼。
1.2模板驗證解析
模板驗證解析部分主要完成的功能是驗證導人模板文件的正確性和解析模板文件 。模板的解析主要是對XML模板文件進行分析之后再將其以可視化的形
式顯示。 由于C#語言和XML良好的兼容性,可以較方便地運用已有的XML相關(guān)類完成。而對于模板的驗證是對模板文件的正確性的保證 由于模板文件本身就是XML文件,故可以采用XML的驗證方法。 目前有2種主要的
XML驗證方法,一種是DTD.一種是XML Scheme。
1.3代碼生成
代碼生成部分主要完成的功能是將用戶配置后的模板文件轉(zhuǎn)化成為源代碼。 在工具將模版轉(zhuǎn)換成為源代碼之前用戶需要對XML模板文件進行配置,考慮到簡潔性和易用性,本工具采用了圖形化的界面來配置模板。XML與c#中的Treeview樹型控件有著非常好的兼容性。因此使用Treeview控件和導入的XML模板進行綁定。利用C#中已有的XML相關(guān)類進行對模板的分析,并且將分'析的結(jié)果通過 eview控件顯示成樹型的結(jié)構(gòu)。其中可以修改的變量將顯示成為樹型結(jié)構(gòu)中的一個節(jié)點。對于用戶來說模板文件和具體代碼是不可見的。他所看到的只是可以配置的變量。將配置后的模板轉(zhuǎn)化為源代碼的過程實質(zhì)上是模板生成的逆過程,通過對模板文件的解析和提取就可以得到需要的源代碼。
1.4結(jié)束語
文中論述了一個w i n do w s平臺上的源代碼自動生成工具的設(shè)計和實現(xiàn),它的功能強大,使用方便,效率高,既具有一定的先進性又具有很好的實用性。其適用于各種嵌入式組件,可以極大的減少重復代碼的編寫,提高開發(fā)人員的效率。
【參考文獻】
【1】胡海靜,王育平.XMl技術(shù)精萃[M】.北京:機械工業(yè)出版社,2002:50—53.
【2】Mark Birbect.XML高級編程[M】.北京:機械工業(yè)出版社,2002:22—27.
【3】】唐大仕.C#程序設(shè)計教程【M】.北京:清華大學出版社,2001:35-52.
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。