一種復雜多分支結(jié)構(gòu)代碼自動生成的方法
【專利摘要】本發(fā)明提供一種復雜多分支結(jié)構(gòu)代碼自動生成的方法,包括:用戶使用類開關(guān)語句編寫源程序;用戶填寫目標語言模板;編譯器通過總控程序讀入所述源程序,并根據(jù)狀態(tài)堆棧中的棧頂狀態(tài)確定對應的語義子程序,從而將源程序中的類開關(guān)語句依照目標語言模板轉(zhuǎn)換生成相應的目標語言程序。本發(fā)明的優(yōu)點在于,用戶只需按語法要求書寫類開關(guān)語句和目標語言模板,編譯器即可生成復雜條件下的多分支目標語言程序,且用戶修改目標語言模板中的內(nèi)容,就能改變生成的目標語言程序。本發(fā)明解決了多分支程序難于設計、執(zhí)行效率低、可讀性差等問題,改善了代碼的可維護性和魯棒性,實現(xiàn)了復雜條件下多分支結(jié)構(gòu)代碼的自動生成。
【專利說明】一種復雜多分支結(jié)構(gòu)代碼自動生成的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機軟件編譯系統(tǒng)領(lǐng)域,更具體地說,涉及一種復雜多分支結(jié)構(gòu)代 碼自動生成的方法。
【背景技術(shù)】
[0002] 目前,在C++、C#或Java編程中,對于多分支的業(yè)務需求,只能用開關(guān)語句 (switch-case)或條件判斷語句(if-then-else)來解決。開關(guān)語句的選擇因子只能是常 量,因此對復雜的條件判斷無能為力。用條件判斷語句能解決復雜條件的多分支結(jié)構(gòu),但 是,只能運用多重嵌套形式完成。
[0003] 以C++為例,復雜條件的多分支程序設計:判斷讀入的字符類型,其典型范例是:
【權(quán)利要求】
1. 一種復雜多分支結(jié)構(gòu)代碼自動生成的方法,其特征在于:所述方法包括如下步驟: 步驟11、用戶使用類開關(guān)語句編寫源程序,所述類開關(guān)語句的結(jié)構(gòu)包括:類開關(guān)語句 頭部、類開關(guān)語句分支部和類開關(guān)語句尾部,其中,類開關(guān)語句分支部包括分支條件表達 式、分支處理語句及分支結(jié)束語句,類開關(guān)語句尾部包括缺省處理語句和循環(huán)結(jié)束語句; 步驟12、用戶填寫目標語言模板,所述目標語言模板由語言說明、永真循環(huán)說明、條件 說明、跳出循環(huán)說明和終止循環(huán)說明構(gòu)成; 步驟13、編譯器通過總控程序讀入所述源程序,并根據(jù)狀態(tài)堆棧中的棧頂狀態(tài)確定對 應的語義子程序,從而將源程序中的類開關(guān)語句依照所述目標語言模板轉(zhuǎn)換生成相應的目 標語言程序;所述編譯器包括目標語言模板、總控程序、狀態(tài)堆棧和語義子程序集,其中,所 述語義子程序集由復數(shù)個用于轉(zhuǎn)換類開關(guān)語句的語義子程序組成。
2. 根據(jù)權(quán)利要求1所述的一種復雜多分支結(jié)構(gòu)代碼自動生成的方法,其特征在于:所 述編譯器執(zhí)行的編譯過程具體為: 步驟21、讀入目標語言模板; 步驟22、初始狀態(tài)進棧; 步驟23、讀入源程序,開始編譯; 步驟24、判斷源程序是否終止:若是,則退出編譯;若否,則跳轉(zhuǎn)步驟25 ; 步驟25、讀狀態(tài)堆棧當前的棧頂狀態(tài); 步驟26、根據(jù)當前的棧頂狀態(tài)確定對應的語義子程序,進行類開關(guān)語句的轉(zhuǎn)換,生成相 應的目標語言程序并修改棧頂狀態(tài); 步驟27、返回步驟23。
3. 根據(jù)權(quán)利要求1或2所述的一種復雜多分支結(jié)構(gòu)代碼自動生成的方法,其特征在于: 所述用戶修改目標語言模板中的內(nèi)容,所述編譯器將對應更換生成的目標語言程序。
【文檔編號】G06F9/45GK104484192SQ201510006578
【公開日】2015年4月1日 申請日期:2015年1月7日 優(yōu)先權(quán)日:2015年1月7日
【發(fā)明者】侯濟恭 申請人:南威軟件股份有限公司