專利名稱:一種編程方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)領(lǐng)域中的一種編程方法。
背景技術(shù):
現(xiàn)有技術(shù)中有很多種編程語言和采用該語言的編程方法,如C語言,C++等,均具有其自身的特點(diǎn);然而公開號為CN1100M3的中國專利申請中公開了一種漢語編程單片機(jī)的計算機(jī)系統(tǒng),其中單片機(jī)漢語編程系統(tǒng)具有一個漢語詞典單元,該漢語詞典單元完成系統(tǒng)的解釋,編譯和運(yùn)行;詞典單元中含有操作系統(tǒng)應(yīng)有的設(shè)備的驅(qū)動,設(shè)備管理、文件管理、 命令管理、解釋、編譯、編輯、跟蹤調(diào)試等;該漢語詞典單元依據(jù)用戶輸入的文本合法輸入流,能繁衍出漢語新詞的詞典標(biāo)識單元,該詞典標(biāo)識單元也可以在讀寫存儲體中繁衍出包括此功能的新的復(fù)合詞;該系統(tǒng)采用軟-硬,一體化設(shè)計將一只可讀存儲體和一可讀寫存儲體的部件地址在硬件上連接重疊,兩個存儲體的數(shù)據(jù)的讀出與否通過總線仲裁器決定, 該總線仲裁器利用系統(tǒng)的“固詞- >”單元指針上的地址判定選擇兩個存儲體中的一個;應(yīng)用系統(tǒng)中可將可讀寫存儲體中的詞典部分轉(zhuǎn)移到只可讀存儲體中,同時總線仲裁器和“固詞- >”可根據(jù)新的方式選擇讀寫兩個存儲體之一。上述的計算機(jī)系統(tǒng)的所公開的編程方法無法實(shí)現(xiàn)在具有不同CPU的設(shè)備中使用,因此無法實(shí)現(xiàn)跨硬件平臺,造成該編程方法的應(yīng)用不夠廣泛。另外,采用C和CC++的編程方法是首先進(jìn)行編譯,最后翻譯成機(jī)器代碼,由于不同CPU有不同的翻譯標(biāo)準(zhǔn),無法進(jìn)行統(tǒng)一,因此采用C和C++語言無法實(shí)現(xiàn)在具有不同 CPU的設(shè)備中進(jìn)行編程。
發(fā)明內(nèi)容
為此,本發(fā)明要解決的技術(shù)問題在于提出一種能在具有不同CPU的設(shè)備中使用, 能夠?qū)崿F(xiàn)跨硬件平臺的編程方法。一種編程方法,包括以下步驟a.在系統(tǒng)初始化前,先通過CPU指令體系的指令預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息,再定義系統(tǒng)基本模;b.建立詞典,把所述系統(tǒng)基本模裝入詞典,并對系統(tǒng)進(jìn)行初始化;c.詞典發(fā)生器將程序源代碼中具有與所述系統(tǒng)基本模相同數(shù)據(jù)結(jié)構(gòu)的詞作為擴(kuò)展模裝入所述詞典,然后在所述詞典中建立起針對該擴(kuò)展模的信息索引,并生成擴(kuò)展模索引信息;d.翻譯器根據(jù)裝入所述詞典的擴(kuò)展模對程序源代碼信息進(jìn)行翻譯;e.裝配器遍歷所述詞典,并進(jìn)行數(shù)據(jù)裝配;f.數(shù)據(jù)裝配后,按函數(shù)目標(biāo)代碼的實(shí)際位置,修改機(jī)器調(diào)用指令訪問地址。上述的編程方法,所述接口函數(shù)目標(biāo)代碼信息包括接口函數(shù)索引信息,和與所述接口函數(shù)索引信息成映射關(guān)系的接口函數(shù)機(jī)器代碼信息,所述系統(tǒng)基本模的數(shù)據(jù)結(jié)構(gòu)為包括系統(tǒng)基本模名稱、系統(tǒng)基本模屬性和系統(tǒng)基本模輸入?yún)?shù);所述接口函數(shù)索引信息的數(shù)據(jù)結(jié)構(gòu)為包括接口函數(shù)名、用于表示所述接口函數(shù)目標(biāo)碼信息空間位置的接口函數(shù)目標(biāo)代碼入口地址、接口函數(shù)屬性、接口函數(shù)輸入?yún)?shù)和接口函數(shù)狀態(tài)標(biāo)識;所述系統(tǒng)基本模具有系統(tǒng)基本模成員函數(shù),所述系統(tǒng)基本模成員函數(shù)具有系統(tǒng)基本模成員函數(shù)索引信息,該索引信息的數(shù)據(jù)結(jié)構(gòu)為包括與所述接口函數(shù)名、所述程序函數(shù)目標(biāo)代碼入口地址、所述接口函數(shù)屬性、所述接口函數(shù)輸入?yún)?shù)和所述接口函數(shù)狀態(tài)標(biāo)識分別成映射關(guān)系的系統(tǒng)基本模成員函數(shù)名、系統(tǒng)基本模成員函數(shù)目標(biāo)代碼入口地址、系統(tǒng)基本模成員函數(shù)屬性和系統(tǒng)基本模成員函數(shù)輸入?yún)?shù)和系統(tǒng)基本模成員函數(shù)狀態(tài)標(biāo)識。上述的編程方法,所述步驟b中對系統(tǒng)進(jìn)行初始化的步驟具體為在詞典中建立所述系統(tǒng)基本模的成員函數(shù)的信息索引,并生成與步驟a中所述的接口函數(shù)索引信息相對應(yīng)的系統(tǒng)基本模成員函數(shù)索引信息,再將所述程序函數(shù)目標(biāo)代碼入口地址存儲在信息索引的相應(yīng)位置中。上述的編程方法,所述擴(kuò)展模包括擴(kuò)展模成員對象和擴(kuò)展模成員函數(shù),所述擴(kuò)展模的成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)為包括與系統(tǒng)基本模成員函數(shù)名、系統(tǒng)基本模成員函數(shù)目標(biāo)代碼入口地址、系統(tǒng)基本模成員函數(shù)屬性、系統(tǒng)基本模成員函數(shù)輸入?yún)?shù)和系統(tǒng)基本模成員函數(shù)狀態(tài)標(biāo)識分別相對應(yīng)的擴(kuò)展模成員函數(shù)名、擴(kuò)展模成員函數(shù)目標(biāo)代碼入口地址、擴(kuò)展模成員函數(shù)屬性、擴(kuò)展模成員函數(shù)輸入?yún)?shù)和擴(kuò)展模成員函數(shù)狀態(tài)標(biāo)識;所述擴(kuò)展模成員函數(shù)包括運(yùn)算符和/或普通函數(shù);所述擴(kuò)展模成員對象的數(shù)據(jù)結(jié)構(gòu)為包括擴(kuò)展模成員對象名、用于存儲擴(kuò)展模成員對象的擴(kuò)展模成員對象數(shù)據(jù)入口地址、擴(kuò)展模成員對象屬性和擴(kuò)展模成員對象狀態(tài)標(biāo)識。上述的編程方法,翻譯器的翻譯步驟具體為翻譯器根據(jù)所述詞典中擴(kuò)展模成員函數(shù)實(shí)體文本位置地址信息,從程序源代碼文本中調(diào)取實(shí)體文本,所述實(shí)體文本為已裝入所述詞典中的所述詞的組合;并將所述實(shí)體文本翻譯成擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息,同時在計算機(jī)中開辟的臨時存儲空間,并將所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息以程序文件為基本單位存入所述臨時存儲空間;所述臨時存儲空間具有臨時存儲空間入口地址信息,使所述臨時存儲空間入口地址信息與所述擴(kuò)展模成員函數(shù)目標(biāo)代碼入口地址信息成映射關(guān)系;其中,翻譯器在翻譯過程中掃描檢測所述實(shí)體文本當(dāng)掃描檢測到運(yùn)算符字符串信息或普通函數(shù)字符串信息時,到詞典中查找具有函數(shù)名與其同名的基本模成員函數(shù)索引信息,或擴(kuò)展模成員函數(shù)索引信息i.所述翻譯器根據(jù)查找到的索引信息將詞典中相應(yīng)的所述系統(tǒng)基本模成員函數(shù)或所述擴(kuò)展模成員函數(shù)的狀態(tài)標(biāo)識設(shè)置為待使用狀態(tài);ii所述翻譯器在所述臨時存儲空間中加入相應(yīng)的調(diào)用指令,和指向基本模成員函數(shù)索引信息或擴(kuò)展模成員函數(shù)索引信息的跳轉(zhuǎn)位置入口;當(dāng)掃描檢測到擴(kuò)展模成員對象字符串信息時,所述翻譯器將擴(kuò)展模成員對象狀態(tài)標(biāo)識設(shè)置為待使用狀態(tài)標(biāo)識。上述的編程方法,所述數(shù)據(jù)裝配具體為當(dāng)被檢測到的所述基本模成員函數(shù)索引信息或所述擴(kuò)展模成員函數(shù)索引信息的所述成員函數(shù)態(tài)標(biāo)識為待使用狀態(tài)標(biāo)識時,所述裝配器將所述基本模成員函數(shù)目標(biāo)代碼信息復(fù)制到所述裝配器的目標(biāo)代碼區(qū)中,或者所述裝配器將擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息從步驟d的所述臨時存儲空間復(fù)制到裝配器的目標(biāo)代碼區(qū)中。上述的編程方法,上述步驟f的修改機(jī)器調(diào)用指令訪問地址根據(jù)檢測到的索引信息將詞典中相應(yīng)的所述系統(tǒng)基本模成員函數(shù)或所述擴(kuò)展模成員函數(shù)的函數(shù)信息索引入口地址修改為裝配器的目標(biāo)代碼區(qū)的函數(shù)目標(biāo)代碼信息所處入口位置。上述的編程方法,其中所述接口函數(shù)索引信息的數(shù)據(jù)結(jié)構(gòu)還包括接口函數(shù)目標(biāo)代碼信息大小屬性;所述擴(kuò)展模的成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)還包括所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息大小屬性;上述步驟a還包括在預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息后對接口函數(shù)目標(biāo)代碼信息的大小記錄在所述接口函數(shù)目標(biāo)代碼信息大小屬性中;且在翻譯過程中所述翻譯器在所述臨時存儲空間中加入相應(yīng)的調(diào)用指令后將所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息的大小記錄在所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息大小屬性中;并根據(jù)所述接口函數(shù)目標(biāo)代碼信息的大小和所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息的大小將所述基本模成員函數(shù)目標(biāo)代碼信息和擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息連續(xù)存儲在所述裝配器的所述目標(biāo)代碼區(qū)中。本發(fā)明的優(yōu)點(diǎn)在于1.本編程方法在系統(tǒng)初始化前,先通過CPU指令體系的指令預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息,以接口函數(shù)形式與不同CPU機(jī)器指令對接,既可以在不同CPU下實(shí)現(xiàn)編程,又縮短了不同CPU下語言環(huán)境開發(fā)周期,降低環(huán)境的開發(fā)難度,實(shí)現(xiàn)跨硬件平臺, 方便了編程方法在具有不同CPU的設(shè)備的推廣使用。2.從詞典的建立,到函數(shù)的翻譯,到目標(biāo)代碼的裝配,完全以詞典為主的索引,相對C語言,C++, JAVA來說其編譯過程更加簡潔更加結(jié)構(gòu)化。3.所述基本模成員函數(shù)目標(biāo)代碼信息和擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息在所述裝配器的所述目標(biāo)代碼區(qū)中的為連續(xù)存儲,可以保證目標(biāo)代碼無縫隙結(jié)合,應(yīng)用程序不易被破壞,提高了可執(zhí)行代碼的安全性。
為了使本發(fā)明的內(nèi)容更容易被清楚的理解,下面根據(jù)本發(fā)明的具體實(shí)施例并結(jié)合附圖,對本發(fā)明作進(jìn)一步詳細(xì)的說明。圖1編程方法的流程具體實(shí)施例方式實(shí)施例1如圖1所示的編程方法,包括以下步驟a.在系統(tǒng)初始化前,先通過CPU指令體系的指令預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息,再定義系統(tǒng)基本模;b.建立詞典,把所述系統(tǒng)基本模裝入所述詞典,并對系統(tǒng)進(jìn)行初始化;c.詞典發(fā)生器將程序源代碼中具有與所述系統(tǒng)基本模相同數(shù)據(jù)結(jié)構(gòu)的詞作為擴(kuò)展模裝入所述詞典,然后在所述詞典中建立起針對該擴(kuò)展模的信息索引,并生成擴(kuò)展模索引信息;d.翻譯器根據(jù)裝入所述詞典的擴(kuò)展模對程序源代碼信息進(jìn)行翻譯;
e.裝配器遍歷所述詞典,并進(jìn)行數(shù)據(jù)裝配;f.數(shù)據(jù)裝配后,按函數(shù)目標(biāo)代碼的實(shí)際位置,修改機(jī)器調(diào)用指令訪問地址。其中,所述接口函數(shù)目標(biāo)代碼信息優(yōu)選為包括接口函數(shù)索引信息,和與所述接口函數(shù)索引信息成映射關(guān)系的接口函數(shù)機(jī)器代碼信息,所述系統(tǒng)基本模的數(shù)據(jù)結(jié)構(gòu)為包括系統(tǒng)基本模名稱、系統(tǒng)基本模屬性和系統(tǒng)基本模輸入?yún)?shù);所述接口函數(shù)索引信息的數(shù)據(jù)結(jié)構(gòu)為包括接口函數(shù)名、用于表示所述接口函數(shù)目標(biāo)碼信息空間位置的接口函數(shù)目標(biāo)代碼入口地址、接口函數(shù)屬性、接口函數(shù)輸入?yún)?shù)和接口函數(shù)狀態(tài)標(biāo)識;所述系統(tǒng)基本模具有系統(tǒng)基本模成員函數(shù),所述系統(tǒng)基本模成員函數(shù)具有系統(tǒng)基本模成員函數(shù)索引信息,該索引信息的數(shù)據(jù)結(jié)構(gòu)為包括與所述接口函數(shù)名、所述程序函數(shù)目標(biāo)代碼入口地址、所述接口函數(shù)屬性、所述接口函數(shù)輸入?yún)?shù)和所述接口函數(shù)狀態(tài)標(biāo)識分別成映射關(guān)系的系統(tǒng)基本模成員函數(shù)名、系統(tǒng)基本模成員函數(shù)目標(biāo)代碼入口地址、系統(tǒng)基本模成員函數(shù)屬性和系統(tǒng)基本模成員函數(shù)輸入?yún)?shù)和系統(tǒng)基本模成員函數(shù)狀態(tài)標(biāo)識;所述步驟b中對系統(tǒng)進(jìn)行初始化的步驟具體優(yōu)選為在詞典中建立所述系統(tǒng)基本模的成員函數(shù)的信息索引,并生成與步驟a中所述的接口函數(shù)索引信息相對應(yīng)的系統(tǒng)基本模成員函數(shù)索引信息,再將所述程序函數(shù)目標(biāo)代碼入口地址存儲在信息索引的相應(yīng)位置中。所述擴(kuò)展模優(yōu)選為包括擴(kuò)展模成員對象和擴(kuò)展模成員函數(shù),所述擴(kuò)展模的成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)為包括與系統(tǒng)基本模成員函數(shù)名、系統(tǒng)基本模成員函數(shù)目標(biāo)代碼入口地址、 系統(tǒng)基本模成員函數(shù)屬性、系統(tǒng)基本模成員函數(shù)輸入?yún)?shù)和系統(tǒng)基本模成員函數(shù)狀態(tài)標(biāo)識分別相對應(yīng)的擴(kuò)展模成員函數(shù)名、擴(kuò)展模成員函數(shù)目標(biāo)代碼入口地址、擴(kuò)展模成員函數(shù)屬性、擴(kuò)展模成員函數(shù)輸入?yún)?shù)和擴(kuò)展模成員函數(shù)狀態(tài)標(biāo)識;所述擴(kuò)展模成員函數(shù)包括運(yùn)算符和/或普通函數(shù);所述擴(kuò)展模成員對象的數(shù)據(jù)結(jié)構(gòu)為包括擴(kuò)展模成員對象名、用于存儲擴(kuò)展模成員對象的擴(kuò)展模成員對象數(shù)據(jù)入口地址、擴(kuò)展模成員對象屬性和擴(kuò)展模成員對象狀態(tài)標(biāo)識。翻譯器的翻譯步驟具體優(yōu)選為翻譯器根據(jù)所述詞典中擴(kuò)展模成員函數(shù)實(shí)體文本位置地址信息,從程序源代碼文本中調(diào)取實(shí)體文本,所述實(shí)體文本為已裝入所述詞典中的所述詞的組合;并將所述實(shí)體文本翻譯成擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息,同時在計算機(jī)中開辟的臨時存儲空間,并將所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息以程序文件為基本單位存入所述臨時存儲空間;所述臨時存儲空間具有臨時存儲空間入口地址信息,使所述臨時存儲空間入口地址信息與所述擴(kuò)展模成員函數(shù)目標(biāo)代碼入口地址信息成映射關(guān)系;其中,翻譯器在翻譯過程中掃描檢測所述實(shí)體文本當(dāng)掃描檢測到運(yùn)算符字符串信息或普通函數(shù)字符串信息時,到詞典中查找具有函數(shù)名與其同名的基本模成員函數(shù)索引信息,或擴(kuò)展模成員函數(shù)索引信息i.所述翻譯器根據(jù)查找到的索引信息將詞典中相應(yīng)的所述系統(tǒng)基本模成員函數(shù)或所述擴(kuò)展模成員函數(shù)的狀態(tài)標(biāo)識設(shè)置為待使用狀態(tài);ii所述翻譯器在所述臨時存儲空間中加入相應(yīng)的調(diào)用指令,和指向基本模成員函數(shù)索引信息或擴(kuò)展模成員函數(shù)索引信息的跳轉(zhuǎn)位置入口;當(dāng)掃描檢測到擴(kuò)展模成員對象字符串信息時,所述翻譯器將擴(kuò)展模成員對象狀態(tài)標(biāo)識設(shè)置為待使用狀態(tài)標(biāo)識。
所述數(shù)據(jù)裝配過程具體優(yōu)選為當(dāng)被檢測到的所述基本模成員函數(shù)索引信息或所述擴(kuò)展模成員函數(shù)索引信息的所述成員函數(shù)態(tài)標(biāo)識為待使用狀態(tài)標(biāo)識時,所述裝配器將所述基本模成員函數(shù)目標(biāo)代碼信息復(fù)制到所述裝配器的目標(biāo)代碼區(qū)中,或者所述裝配器將擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息從步驟d的所述臨時存儲空間復(fù)制到裝配器的目標(biāo)代碼區(qū)中。所述基本模成員函數(shù)目標(biāo)代碼信息和/或擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息在所述裝配器的所述目標(biāo)代碼區(qū)中的優(yōu)選為連續(xù)存儲。上述修改機(jī)器調(diào)用指令訪問地址優(yōu)選為根據(jù)檢測到的索引信息將詞典中相應(yīng)的所述系統(tǒng)基本模成員函數(shù)或所述擴(kuò)展模成員函數(shù)的函數(shù)信息索引入口地址修改為裝配器的目標(biāo)代碼區(qū)的函數(shù)目標(biāo)代碼信息所處入口位置。本發(fā)明的編程方法可進(jìn)一步地優(yōu)化為所述接口函數(shù)索引信息的數(shù)據(jù)結(jié)構(gòu)還包括接口函數(shù)目標(biāo)代碼信息大小屬性;所述擴(kuò)展模的成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)還包括所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息大小屬性;上述步驟a還包括在預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息后對接口函數(shù)目標(biāo)代碼信息的大小記錄在所述接口函數(shù)目標(biāo)代碼信息大小屬性中;且在翻譯過程中所述翻譯器在所述臨時存儲空間中加入相應(yīng)的調(diào)用指令后將所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息的大小記錄在所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息大小屬性中;并根據(jù)所述接口函數(shù)目標(biāo)代碼信息的大小和所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息的大小將所述基本模成員函數(shù)目標(biāo)代碼信息和擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息連續(xù)存儲在所述裝配器的所述目標(biāo)代碼區(qū)中。顯然,上述實(shí)施例僅僅是為清楚地說明所作的舉例,而并非對實(shí)施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以根據(jù)設(shè)備的大小不同做出其它不同形式的變化或變動。這里無需也無法對所有的實(shí)施方式予以窮舉。而由此所引伸出的顯而易見的變化或變動仍處于本發(fā)明創(chuàng)造的保護(hù)范圍之中。
權(quán)利要求
1.一種編程方法,其特征包括以下步驟a.在系統(tǒng)初始化前,先通過CPU指令體系的指令預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息,再定義系統(tǒng)基本模;b.建立詞典,把所述系統(tǒng)基本模裝入所述詞典,并對系統(tǒng)進(jìn)行初始化;c.詞典發(fā)生器將程序源代碼中具有與所述系統(tǒng)基本模相同數(shù)據(jù)結(jié)構(gòu)的詞作為擴(kuò)展模裝入所述詞典,然后在所述詞典中建立起針對該擴(kuò)展模的信息索引,并生成擴(kuò)展模索引信息;d.翻譯器根據(jù)裝入所述詞典的擴(kuò)展模對程序源代碼信息進(jìn)行翻譯;e.裝配器遍歷所述詞典,并進(jìn)行數(shù)據(jù)裝配;f.數(shù)據(jù)裝配后,按函數(shù)目標(biāo)代碼的實(shí)際位置,修改機(jī)器調(diào)用指令訪問地址。
2.根據(jù)權(quán)利要求1所述的編程方法,其特征在于所述接口函數(shù)目標(biāo)代碼信息包括接口函數(shù)索引信息,和與所述接口函數(shù)索引信息成映射關(guān)系的接口函數(shù)機(jī)器代碼信息,所述系統(tǒng)基本模的數(shù)據(jù)結(jié)構(gòu)為包括系統(tǒng)基本模名稱、系統(tǒng)基本模屬性和系統(tǒng)基本模輸入?yún)?shù);所述接口函數(shù)索引信息的數(shù)據(jù)結(jié)構(gòu)為包括接口函數(shù)名、用于表示所述接口函數(shù)目標(biāo)碼信息空間位置的接口函數(shù)目標(biāo)代碼入口地址、接口函數(shù)屬性、接口函數(shù)輸入?yún)?shù)和接口函數(shù)狀態(tài)標(biāo)識;所述系統(tǒng)基本模具有系統(tǒng)基本模成員函數(shù),所述系統(tǒng)基本模成員函數(shù)具有系統(tǒng)基本模成員函數(shù)索引信息,該索引信息的數(shù)據(jù)結(jié)構(gòu)為包括與所述接口函數(shù)名、所述程序函數(shù)目標(biāo)代碼入口地址、所述接口函數(shù)屬性、所述接口函數(shù)輸入?yún)?shù)和所述接口函數(shù)狀態(tài)標(biāo)識分別成映射關(guān)系的系統(tǒng)基本模成員函數(shù)名、系統(tǒng)基本模成員函數(shù)目標(biāo)代碼入口地址、系統(tǒng)基本模成員函數(shù)屬性和系統(tǒng)基本模成員函數(shù)輸入?yún)?shù)和系統(tǒng)基本模成員函數(shù)狀態(tài)標(biāo)識。
3.根據(jù)權(quán)利要求1或2所述的編程方法,其特征在于所述步驟b中對系統(tǒng)進(jìn)行初始化的步驟具體為在詞典中建立所述系統(tǒng)基本模的成員函數(shù)的信息索引,并生成與步驟a中所述的接口函數(shù)索引信息相對應(yīng)的系統(tǒng)基本模成員函數(shù)索引信息,再將所述程序函數(shù)目標(biāo)代碼入口地址存儲在信息索引的相應(yīng)位置中。
4.根據(jù)權(quán)利要求3所述的編程方法,其特征在于所述擴(kuò)展模包括擴(kuò)展模成員對象和擴(kuò)展模成員函數(shù),所述擴(kuò)展模成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)為包括與系統(tǒng)基本模成員函數(shù)名、系統(tǒng)基本模成員函數(shù)目標(biāo)代碼入口地址、系統(tǒng)基本模成員函數(shù)屬性、系統(tǒng)基本模成員函數(shù)輸入?yún)?shù)和系統(tǒng)基本模成員函數(shù)狀態(tài)標(biāo)識分別相對應(yīng)的擴(kuò)展模成員函數(shù)名、擴(kuò)展模成員函數(shù)目標(biāo)代碼入口地址、擴(kuò)展模成員函數(shù)屬性、擴(kuò)展模成員函數(shù)輸入?yún)?shù)和擴(kuò)展模成員函數(shù)狀態(tài)標(biāo)識;所述擴(kuò)展模成員函數(shù)包括運(yùn)算符和/或普通函數(shù);所述擴(kuò)展模成員對象的數(shù)據(jù)結(jié)構(gòu)為包括擴(kuò)展模成員對象名、用于存儲擴(kuò)展模成員對象的擴(kuò)展模成員對象數(shù)據(jù)入口地址、擴(kuò)展模成員對象屬性和擴(kuò)展模成員對象狀態(tài)標(biāo)識。
5.根據(jù)權(quán)利要求4所述的編程方法,其特征在于翻譯器的翻譯步驟具體為翻譯器根據(jù)所述詞典中擴(kuò)展模成員函數(shù)實(shí)體文本位置地址信息,從程序源代碼文本中調(diào)取實(shí)體文本,所述實(shí)體文本為已裝入所述詞典中的所述詞的組合;并將所述實(shí)體文本翻譯成擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息,同時在計算機(jī)中開辟的臨時存儲空間,并將所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息以程序文件為基本單位存入所述臨時存儲空間;所述臨時存儲空間具有臨時存儲空間入口地址信息,使所述臨時存儲空間入口地址信息與所述擴(kuò)展模成員函數(shù)目標(biāo)代碼入口地址信息成映射關(guān)系; 其中,翻譯器在翻譯過程中掃描檢測所述實(shí)體文本當(dāng)掃描檢測到運(yùn)算符字符串信息或普通函數(shù)字符串信息時,到詞典中查找具有函數(shù)名與其同名的基本模成員函數(shù)索引信息,或擴(kuò)展模成員函數(shù)索引信息i.所述翻譯器根據(jù)查找到的索引信息將詞典中相應(yīng)的所述系統(tǒng)基本模成員函數(shù)或所述擴(kuò)展模成員函數(shù)的狀態(tài)標(biāo)識設(shè)置為待使用狀態(tài);ii所述翻譯器在所述臨時存儲空間中加入相應(yīng)的調(diào)用指令,和指向所述基本模成員函數(shù)索引信息或所述擴(kuò)展模成員函數(shù)索引信息的跳轉(zhuǎn)位置入口;當(dāng)掃描檢測到擴(kuò)展模成員對象字符串信息時,所述翻譯器將擴(kuò)展模成員對象狀態(tài)標(biāo)識設(shè)置為待使用狀態(tài)標(biāo)識。
6.根據(jù)權(quán)利要求5所述的編程方法,其特征在于所述數(shù)據(jù)裝配具體為當(dāng)被檢測到的所述基本模成員函數(shù)索引信息或所述擴(kuò)展模成員函數(shù)索引信息的所述成員函數(shù)態(tài)標(biāo)識為待使用狀態(tài)標(biāo)識時,所述裝配器將所述基本模成員函數(shù)目標(biāo)代碼信息復(fù)制到所述裝配器的目標(biāo)代碼區(qū)中,或者所述裝配器將擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息從步驟d的所述臨時存儲空間復(fù)制到裝配器的目標(biāo)代碼區(qū)中。
7.根據(jù)權(quán)利要求6所述的編程方法,其特征在于修改機(jī)器調(diào)用指令訪問地址根據(jù)檢測到的索引信息將詞典中相應(yīng)的所述系統(tǒng)基本模成員函數(shù)或所述擴(kuò)展模成員函數(shù)的函數(shù)信息索引入口地址修改為裝配器的目標(biāo)代碼區(qū)的函數(shù)目標(biāo)代碼信息所處入口位置。
8.根據(jù)權(quán)利要求6或7所述的編程方法,其特征在于所述接口函數(shù)索引信息的數(shù)據(jù)結(jié)構(gòu)還包括接口函數(shù)目標(biāo)代碼信息大小屬性;所述擴(kuò)展模的成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)還包括所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息大小屬性;上述步驟a還包括在預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息后對接口函數(shù)目標(biāo)代碼信息的大小記錄在所述接口函數(shù)目標(biāo)代碼信息大小屬性中;且在翻譯過程中所述翻譯器在所述臨時存儲空間中加入相應(yīng)的調(diào)用指令后將所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息的大小記錄在所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息大小屬性中;并根據(jù)所述接口函數(shù)目標(biāo)代碼信息的大小和所述擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息的大小將所述基本模成員函數(shù)目標(biāo)代碼信息和擴(kuò)展模成員函數(shù)目標(biāo)機(jī)器代碼信息連續(xù)存儲在所述裝配器的所述目標(biāo)代碼區(qū)中。
全文摘要
本發(fā)明公開了一種編程方法,包括以下步驟a.在系統(tǒng)初始化前,先通過CPU指令體系的指令預(yù)先合成接口函數(shù)的接口函數(shù)目標(biāo)代碼信息,再定義系統(tǒng)基本模;b.把所述系統(tǒng)基本模裝入詞典并對系統(tǒng)進(jìn)行初始化;c.詞典發(fā)生器將程序源代碼中具有與所述系統(tǒng)基本模相同數(shù)據(jù)結(jié)構(gòu)的詞作為擴(kuò)展模裝入所述詞典,然后在所述詞典中建立起針對該擴(kuò)展模的信息索引,并生成擴(kuò)展模索引信息;d.翻譯器根據(jù)裝入所述詞典的擴(kuò)展模對程序源代碼信息進(jìn)行翻譯;e.裝配器遍歷所述詞典,并進(jìn)行數(shù)據(jù)裝配;f.數(shù)據(jù)裝配后,按函數(shù)目標(biāo)代碼的實(shí)際位置,修改機(jī)器調(diào)用指令訪問地址。
文檔編號G06F9/45GK102323891SQ201110338428
公開日2012年1月18日 申請日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者易立, 曾京, 沈志斌, 胡月軍 申請人:易立, 曾京