[發明專利]一種基于正則表達式的程序靜態分析方法有效
| 申請號: | 201510901013.0 | 申請日: | 2015-12-08 |
| 公開(公告)號: | CN106855842B | 公開(公告)日: | 2020-12-29 |
| 發明(設計)人: | 耿晨;譚強;王海龍;鹿雪玲 | 申請(專利權)人: | 中國航空工業第六一八研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中國航空專利中心 11008 | 代理人: | 杜永保 |
| 地址: | 710065 陜*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 正則 表達式 程序 靜態 分析 方法 | ||
本發明涉及一種程序分析方法,特別涉及一種基于正則表達式的程序靜態分析方法。根據待評價程序的結構和編碼規則,建立提取關鍵信息的正則表達式分析規則,從提取到的關鍵信息數據庫中,得到不符合待評價程序結構和編碼規則的項目。基于正則表達式的分析方法,可以快速有效的對程序進行分析,并對程序進行有針對性的優化。
技術領域
本發明涉及一種程序分析方法,特別涉及一種基于正則表達式的程序靜態分析方法。
背景技術
程序靜態分析是在不執行程序的情況下對程序進行分析,推測程序在運行時可能表現出來的行為,是實現對軟件系統理解與分析的一種有效途徑和關鍵技術。現有多種程序靜態分析方法,如:符號執行,定理證明,類型推導,抽象解釋等。但此類方法難以挖掘出具體的代碼元素,如函數,變量名,數據結構類型,返回值等信息。
機載系統設備一般包括慣性導航系統、飛行控制系統、火控系統等。隨著慣導功能復雜性的增強,程序的規模也急劇增加,相應的文檔規模也越來越大,在編制文檔過程中極大的增加了開發人員的工作量。現已有自動生成文檔的方法,例如基于注釋的方法。此類方法雖然具有針對性強的優點,能夠直接生成程序的一部分文檔,但需要人工在代碼中添加注釋,當代碼規模迅速增大時,僅僅依靠人力幾乎不可能完成注釋添加工作,且會增加開發人員的負擔。
在程序的開發過程中,需要遵循一定的編碼規則。由于開發人員較多,因此每個人可能未必能嚴格遵循編碼規則,因此也需要一種檢測手段來查找不符合編碼規則的程序片段,并促使開發人員修正此問題。
此外,由于程序運行在使用嵌入式處理器的慣導系統上,硬件資源有限,為了更好的利用僅有的處理器和內存資源,也需要一種程序優化的方法。
發明內容
本發明解決的技術問題為:提供一種快捷高效的,基于正則表達式的程序靜態分析方法。
本發明的技術方案為:根據待評價程序的結構和編碼規則,建立提取關鍵信息的正則表達式分析規則,從提取到的關鍵信息數據庫中,得到不符合待評價程序結構和編碼規則的項目。
作為本技術方案的一種改進,所述的方法包括如下步驟:
步驟一,確定待評價程序需要分析的關鍵信息;
步驟二,根據待評價程序的結構和編碼規則,建立提取關鍵信息的正則表達式分析規則,構成正則表達式分析規則庫;
步驟三,根據正則表達式分析規則庫,提取待評價程序的關鍵信息,得到關鍵信息的數據字典和關鍵信息數據庫;
步驟四,從關鍵信息數據庫中提取不符合待評價程序的結構和編碼規則的項目,并生成不符合項分析報告。
作為本技術方案的一種改進,待評價程序的關鍵信息包括函數名、局部變量、全局變量、返回值、函數中使用的數據結構和當前函數調用的其他函數名。
作為本技術方案的一種改進,根據步驟三中得到的關鍵信息數據字典和關鍵信息數據庫,和事先規定的設計文檔模版,生成得到程序對應的設計文檔。
作為本技術方案的一種改進,根據正則表達式分析規則庫,提取待評價程序的關鍵信息時,還統計了每個函數和數據結構的調用頻次。
本發明的有益效果為:首先,基于正則表達式的分析方法,可以快速有效的對程序進行分析,并對程序進行有針對性的優化。
其次,能夠自動生成設計文檔,大大減少了開發人員的工作量。
再次,能夠對不符合編碼規則的程序片段進行標識,快速定位不符合項程序片段,易于修改程序。
最后,適用性強,適用所有型號的程序,可以兼容舊版本的程序。分析結果可以在多個項目之間復用,降低了其他型號的開發成本,通過構建的分析模型能夠進一步的優化程序。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國航空工業第六一八研究所,未經中國航空工業第六一八研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510901013.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種系統內存分析方法和裝置
- 下一篇:一種Web系統的性能分析方法和裝置





