欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于正則表達式的程序靜態(tài)分析方法與流程

文檔序號:12612204閱讀:951來源:國知局
一種基于正則表達式的程序靜態(tài)分析方法與流程

本發(fā)明涉及一種程序分析方法,特別涉及一種基于正則表達式的程序靜態(tài)分析方法。



背景技術(shù):

程序靜態(tài)分析是在不執(zhí)行程序的情況下對程序進行分析,推測程序在運行時可能表現(xiàn)出來的行為,是實現(xiàn)對軟件系統(tǒng)理解與分析的一種有效途徑和關(guān)鍵技術(shù)?,F(xiàn)有多種程序靜態(tài)分析方法,如:符號執(zhí)行,定理證明,類型推導(dǎo),抽象解釋等。但此類方法難以挖掘出具體的代碼元素,如函數(shù),變量名,數(shù)據(jù)結(jié)構(gòu)類型,返回值等信息。

機載系統(tǒng)設(shè)備一般包括慣性導(dǎo)航系統(tǒng)、飛行控制系統(tǒng)、火控系統(tǒng)等。隨著慣導(dǎo)功能復(fù)雜性的增強,程序的規(guī)模也急劇增加,相應(yīng)的文檔規(guī)模也越來越大,在編制文檔過程中極大的增加了開發(fā)人員的工作量?,F(xiàn)已有自動生成文檔的方法,例如基于注釋的方法。此類方法雖然具有針對性強的優(yōu)點,能夠直接生成程序的一部分文檔,但需要人工在代碼中添加注釋,當(dāng)代碼規(guī)模迅速增大時,僅僅依靠人力幾乎不可能完成注釋添加工作,且會增加開發(fā)人員的負(fù)擔(dān)。

在程序的開發(fā)過程中,需要遵循一定的編碼規(guī)則。由于開發(fā)人員較多,因此每個人可能未必能嚴(yán)格遵循編碼規(guī)則,因此也需要一種檢測手段來查找不符合編碼規(guī)則的程序片段,并促使開發(fā)人員修正此問題。

此外,由于程序運行在使用嵌入式處理器的慣導(dǎo)系統(tǒng)上,硬件資 源有限,為了更好的利用僅有的處理器和內(nèi)存資源,也需要一種程序優(yōu)化的方法。



技術(shù)實現(xiàn)要素:

本發(fā)明解決的技術(shù)問題為:提供一種快捷高效的,基于正則表達式的程序靜態(tài)分析方法。

本發(fā)明的技術(shù)方案為:根據(jù)待評價程序的結(jié)構(gòu)和編碼規(guī)則,建立提取關(guān)鍵信息的正則表達式分析規(guī)則,從提取到的關(guān)鍵信息數(shù)據(jù)庫中,得到不符合待評價程序結(jié)構(gòu)和編碼規(guī)則的項目。

作為本技術(shù)方案的一種改進,所述的方法包括如下步驟:

步驟一,確定待評價程序需要分析的關(guān)鍵信息;

步驟二,根據(jù)待評價程序的結(jié)構(gòu)和編碼規(guī)則,建立提取關(guān)鍵信息的正則表達式分析規(guī)則,構(gòu)成正則表達式分析規(guī)則庫;

步驟三,根據(jù)正則表達式分析規(guī)則庫,提取待評價程序的關(guān)鍵信息,得到關(guān)鍵信息的數(shù)據(jù)字典和關(guān)鍵信息數(shù)據(jù)庫;

步驟四,從關(guān)鍵信息數(shù)據(jù)庫中提取不符合待評價程序的結(jié)構(gòu)和編碼規(guī)則的項目,并生成不符合項分析報告。

作為本技術(shù)方案的一種改進,待評價程序的關(guān)鍵信息包括函數(shù)名、局部變量、全局變量、返回值、函數(shù)中使用的數(shù)據(jù)結(jié)構(gòu)和當(dāng)前函數(shù)調(diào)用的其他函數(shù)名。

作為本技術(shù)方案的一種改進,根據(jù)步驟三中得到的關(guān)鍵信息數(shù)據(jù)字典和關(guān)鍵信息數(shù)據(jù)庫,和事先規(guī)定的設(shè)計文檔模版,生成得到程序?qū)?yīng)的設(shè)計文檔。

作為本技術(shù)方案的一種改進,根據(jù)正則表達式分析規(guī)則庫,提取待評價程序的關(guān)鍵信息時,還統(tǒng)計了每個函數(shù)和數(shù)據(jù)結(jié)構(gòu)的調(diào)用頻次。

本發(fā)明的有益效果為:首先,基于正則表達式的分析方法,可以快速有效的對程序進行分析,并對程序進行有針對性的優(yōu)化。

其次,能夠自動生成設(shè)計文檔,大大減少了開發(fā)人員的工作量。

再次,能夠?qū)Σ环暇幋a規(guī)則的程序片段進行標(biāo)識,快速定位不符合項程序片段,易于修改程序。

最后,適用性強,適用所有型號的程序,可以兼容舊版本的程序。分析結(jié)果可以在多個項目之間復(fù)用,降低了其他型號的開發(fā)成本,通過構(gòu)建的分析模型能夠進一步的優(yōu)化程序。

附圖說明

圖1本發(fā)明運行的具體實施步驟流程圖;

圖2本發(fā)明的設(shè)計框架圖。

具體實施方式

下面結(jié)合附圖對本技術(shù)方案作進一步詳細說明。

所述的方法,根據(jù)待評價程序的結(jié)構(gòu)和編碼規(guī)則,建立提取關(guān)鍵信息的正則表達式分析規(guī)則,從提取到的關(guān)鍵信息數(shù)據(jù)庫中,得到不符合待評價程序結(jié)構(gòu)和編碼規(guī)則的項目。

圖1顯示的是本方法的處理流程。圖1中有兩個功能組建,程序分析器和文檔生成器。通過分析程序的關(guān)鍵信息,建立正則表達式規(guī)則庫,程序分析器可以對輸入的程序進行分析并輸出數(shù)據(jù)字典,關(guān)鍵信息數(shù)據(jù)庫和統(tǒng)計與分析模型。文檔生成器能夠生成程序?qū)?yīng)的文檔 和不符合項報告。開發(fā)人員可以根據(jù)統(tǒng)計與分析模型,以及不符合項報告來改進和優(yōu)化程序。

使用本方法整個實施步驟參見附圖1,具體描述如下:

步驟1:提取程序需要分析的關(guān)鍵信息。對于程序來說,程序的關(guān)鍵信息包括函數(shù)名、局部變量、全局變量、返回值、函數(shù)中使用的數(shù)據(jù)結(jié)構(gòu)和當(dāng)前函數(shù)調(diào)用的其他函數(shù)名。

步驟2:結(jié)合程序關(guān)鍵信息,建立程序的編碼規(guī)則。根據(jù)編碼規(guī)則,建立分析和解析程序的正則表達式規(guī)則庫。正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符及這些字符的組合,用來表達對字符串的一種過濾邏輯。正則表達式能夠自由方便的進行字符串匹配,具有適用性強,靈活且易于修改的特點。正則表達式規(guī)則庫是多條正則表達式規(guī)則的集合,它是能夠進行程序分析的前提,提供了對程序關(guān)鍵信息的映射關(guān)系。程序關(guān)鍵信息中的每一個要素,如程序中的函數(shù)名,對應(yīng)于正則表達式規(guī)則庫中的一條規(guī)則,程序分析器可以通過此規(guī)則找到每個函數(shù),同理,可以找到其他的程序關(guān)鍵信息。

步驟3:根據(jù)正則表達式分析規(guī)則庫,提取待評價程序的關(guān)鍵信息。分析過程基于正則表達式規(guī)則。根據(jù)正則表達式規(guī)則匹配程序中的相應(yīng)程序關(guān)鍵信息,自動生成關(guān)鍵信息數(shù)據(jù)庫、數(shù)據(jù)字典,并建立統(tǒng)計與分析模型。關(guān)鍵信息數(shù)據(jù)庫是用來存儲程序關(guān)鍵信息的數(shù)據(jù)庫,數(shù)據(jù)字典是存放數(shù)據(jù)庫所用的有關(guān)信息,描述了數(shù)據(jù)庫的格式,為數(shù)據(jù)庫提供存取和控制管理。

步驟4:從關(guān)鍵信息數(shù)據(jù)庫中提取不符合待評價程序的結(jié)構(gòu)和編碼規(guī)則的項目。使用文檔生成器生成文檔。文檔生成器訪問步驟3建立的數(shù)據(jù)字典和關(guān)鍵信息數(shù)據(jù)庫,并結(jié)合規(guī)定的文檔模版,生成程序?qū)?yīng)的文檔。此文檔模版規(guī)定了需要輸出的文檔格式以及文檔中需要填寫的內(nèi)容。此外,在解析程序的過程中,識別程序中不符合編碼規(guī)則的程序片段,生成不符合項分析報告。

步驟5:根據(jù)不符合項分析報告,對不符合慣導(dǎo)編碼規(guī)則的程序片段進行修正,使之完全符合標(biāo)準(zhǔn),此方式降低了人工在海量的程序片段中進行檢查的成本,能夠快速定位不符合項的位置。

步驟6;重新使用程序分析器對改進后的程序進行分析,查看不符合項報告。若不存在不符合項,則說明已經(jīng)完成對所有不符合項的修正。否則重復(fù)步驟6,直到不存在不符合項為止。

步驟7:根據(jù)步驟4建立的統(tǒng)計和分析模型,結(jié)合慣導(dǎo)硬件系統(tǒng),對程序進行優(yōu)化。統(tǒng)計程序中使用頻度最高的函數(shù)體,全局變量和數(shù)據(jù)結(jié)構(gòu),根據(jù)“2-8法則”,對這些程序關(guān)鍵信息的優(yōu)化能夠大幅提升程序運行效率。

實施例

應(yīng)用場景如下:在某型號飛機上,該型慣導(dǎo)系統(tǒng)的硬件單片機基本配置如下:

CPU類型:PowerPC8245處理器。

操作系統(tǒng):VXworks5.5。

程序需支持此CPU,且使用此操作系統(tǒng)API。

圖2是本發(fā)明在應(yīng)用場景下的設(shè)計框架圖。

根據(jù)程序的運行環(huán)境(CPU和操作系統(tǒng)),以及程序關(guān)鍵信息,建立程序的編碼規(guī)則。規(guī)定程序關(guān)鍵信息包括函數(shù)名、局部變量、全局變量、返回值、函數(shù)中使用的數(shù)據(jù)結(jié)構(gòu)和當(dāng)前函數(shù)調(diào)用的其他函數(shù)名。函數(shù)輸入?yún)?shù)的變量命名規(guī)則:名稱前綴為程序指定的特定字符串,能夠唯一識別對應(yīng)的程序關(guān)鍵信息。

通過操作界面,載入需要分析的程序,可以是單個文件,也可以是一批文件存放在某個文件夾。

點擊“開始分析”按鈕,調(diào)用程序分析器對程序進行分析,并得到XML格式的數(shù)據(jù)字典和關(guān)鍵信息數(shù)據(jù)庫。在分析完畢之后,文檔生成器會自動根據(jù)以上結(jié)果生成程序?qū)?yīng)的文檔和不符合項分析報告。

根據(jù)不符合項分析報告改進程序。不符合項分析報告中,包括不符合項的統(tǒng)計信息,如不符合項的個數(shù),所在的文件以及所在文件的行數(shù)和其所在的函數(shù)。根據(jù)此信息,對程序進行修改,使之符合慣導(dǎo)的編碼規(guī)則。

根據(jù)統(tǒng)計和分析模型,對輸入的程序中,出現(xiàn)頻率最高的函數(shù)體和數(shù)據(jù)結(jié)構(gòu)進行分析。對數(shù)據(jù)結(jié)構(gòu)中的變量的存儲空間,以及順序進行調(diào)整;優(yōu)化數(shù)據(jù)結(jié)構(gòu)的在內(nèi)存中的對齊方式;并刪去不使用的數(shù)據(jù)結(jié)構(gòu)項,將此數(shù)據(jù)結(jié)構(gòu)中的使用頻度最少變量提出,建立單獨的變量,能夠有效減少使用頻度最高的數(shù)據(jù)結(jié)構(gòu)所占用的空間,提高對其訪問的效率。

通過實際驗證,本發(fā)明能夠在200ms內(nèi)完成10萬行規(guī)模級的程序的分析工作,并輸出程序?qū)?yīng)的文檔和不符合項,通過不符合項和統(tǒng)計與分析模型對程序改進,優(yōu)化后的程序執(zhí)行效率提高約1.6%。原本人工完成10萬行規(guī)模級程序?qū)?yīng)的設(shè)計文檔,需要約216小時/人,現(xiàn)在可自動生成文檔,無需人工介入,極大節(jié)約人力成本。

本發(fā)明還可以有其它多種實施例,在不背離本發(fā)明精神和實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明做出各種相應(yīng)的改變,但這些相應(yīng)的改變都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
冷水江市| 德兴市| 湖南省| 江山市| 黔江区| 台前县| 固原市| 湘潭市| 新化县| 德兴市| 双流县| 开阳县| 澄迈县| 七台河市| 东平县| 嘉荫县| 综艺| 南郑县| 玛多县| 甘南县| 望奎县| 宝兴县| 德格县| 井冈山市| 新安县| 增城市| 望城县| 南京市| 北辰区| 青龙| 丘北县| 札达县| 房山区| 菏泽市| 江孜县| 高尔夫| 盐源县| 洞头县| 天长市| 宁城县| 平顶山市|