System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及民用航空發動機控制軟件,具體涉及一種針對c語言特征代碼的提取方法。
技術介紹
1、在適航《機載系統與設備合格審定中的軟件考慮》(do-178c)標準中6.4.4.2結構覆蓋分析中,如果軟件等級是a級,且編譯器、鏈接器或其它方法生成了無法直接追蹤到源代碼語句的額外代碼,則應當開展額外的驗證來證明這種生成的代碼序列的正確性。在表a-7目標9要求完成無法追蹤到源代碼的額外代碼的驗證。在do248c中4.12?dp#12中提供一種追溯性分析方法,是識別具有完全代表性的應用程序語言結構的特征代碼,并分析生成的目標代碼。如果在特征代碼上執行的比較顯示沒有功能差異,那么表明目標代碼不包含額外的功能。對于使用c語言開發的程序,并沒有提供如何能識別出代表c語言結構特征代碼的方法。
技術實現思路
1、專利技術目的:本專利技術的目的是提供一種針對c語言特征代碼的提取方法,支持使用c語言程序開發的程序通過開展特征代提取,識別能完全代表程序語言特點的特征代碼。
2、技術方案:本專利技術所述的一種針對c語言特征代碼的提取方法,包括以下步驟:
3、(1)根據c語言特點,定義c語言的特征;
4、(2)構建c語言特征分析模版;
5、(3)根據c語言特征分析模版對代碼進行提取。
6、進一步的,步驟(1)中,從數據結構、運算符、函數調用、預處理、程序控制定義c語言的特征;其中,數據結構包括:基本類型、構造類型、空類型、指針類型、強制類型轉換;構造
7、進一步的,步驟(2)中,以函數為單元進行特征分析時,從返回類型、函數名、形參類型、函數體內基本類型、函數體內構造類型、函數內的預處理、函數內運算符、函數內過程控制八個區域,逐行代碼分析函數的語句,將使用的類型按照步驟(1)中定義特征命名填寫在對應區域。
8、進一步的,步驟(3)中具體如下:首先對逐個c文件的函數按照特征分析模版完成分析;其次對全部的c文件特征分析結果進行匯總,對模版中同一個區域刪除重復的特征,形成特征匯總;最后,根據特征匯總表,選擇能覆蓋特征的函數,直至對全部特征進行全覆蓋,挑選出的函數即為特征代碼。
9、本專利技術所述的一種針對c語言特征代碼的提取系統,包括:
10、定義模塊:用于根據c語言特點,定義c語言的特征;
11、分析模塊:用于構建c語言特征分析模版;
12、提取模塊:用于根據c語言特征分析模版對代碼進行提取。
13、進一步的,定義模塊中,從數據結構、運算符、函數調用、預處理、程序控制定義c語言的特征;其中,數據結構包括:基本類型、構造類型、空類型、指針類型、強制類型轉換;構造類型包括數組、聯合體、結構體三個類型。
14、進一步的,以函數為單元進行特征分析時,從返回類型、函數名、形參類型、函數體內基本類型、函數體內構造類型、函數內的預處理、函數內運算符、函數內過程控制八個區域,逐行代碼分析函數的語句,將使用的類型按照定義模塊中定義特征命名填寫在對應區域。
15、進一步的,提取模塊中具體如下:首先對逐個c文件的函數按照特征分析模版完成分析;其次對全部的c文件特征分析結果進行匯總,對模版中同一個區域刪除重復的特征,形成特征匯總;最后,根據特征匯總表,選擇能覆蓋特征的函數,直至對全部特征進行全覆蓋,挑選出的函數即為特征代碼。
16、本專利技術所述的一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述計算機程序被加載至處理器時實現任一項所述的一種針對c語言特征代碼的提取方法。
17、本專利技術所述的一種存儲介質,所述存儲介質存儲有計算機程序,所述計算機程序被處理器執行時實現任一項所述的一種針對c語言特征代碼的提取方法。
18、有益效果:與現有技術相比,本專利技術具有如下顯著優點:挑選出的特征代碼是作為項目的子集,進行源代碼與目標碼追溯性分析的范圍縮減,提升分析效率;可以適用于所有c語言開發項目上,通用性強;可供其它語言參考。
本文檔來自技高網...【技術保護點】
1.一種針對C語言特征代碼的提取方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種針對C語言特征代碼的提取方法,其特征在于,步驟(1)中,從數據結構、運算符、函數調用、預處理、程序控制定義C語言的特征;其中,數據結構包括:基本類型、構造類型、空類型、指針類型、強制類型轉換;構造類型包括數組、聯合體、結構體三個類型。
3.根據權利要求1所述的一種針對C語言特征代碼的提取方法,步驟(2)中,以函數為單元進行特征分析時,從返回類型、函數名、形參類型、函數體內基本類型、函數體內構造類型、函數內的預處理、函數內運算符、函數內過程控制八個區域,逐行代碼分析函數的語句,將使用的類型按照步驟(1)中定義特征命名填寫在對應區域。
4.根據權利要求1所述的一種針對C語言特征代碼的提取方法,步驟(3)中具體如下:首先對逐個C文件的函數按照特征分析模版完成分析;其次對全部的C文件特征分析結果進行匯總,對模版中同一個區域刪除重復的特征,形成特征匯總;最后,根據特征匯總表,選擇能覆蓋特征的函數,直至對全部特征進行全覆蓋,挑選出的函數即為特征代碼。
6.根據權利要求5所述的一種針對C語言特征代碼的提取系統,其特征在于,定義模塊中,從數據結構、運算符、函數調用、預處理、程序控制定義C語言的特征;其中,數據結構包括:基本類型、構造類型、空類型、指針類型、強制類型轉換;構造類型包括數組、聯合體、結構體三個類型。
7.根據權利要求5所述的一種針對C語言特征代碼的提取系統,分析模塊中,以函數為單元進行特征分析時,從返回類型、函數名、形參類型、函數體內基本類型、函數體內構造類型、函數內的預處理、函數內運算符、函數內過程控制八個區域,逐行代碼分析函數的語句,將使用的類型按照定義模塊中定義特征命名填寫在對應區域。
8.根據權利要求5所述的一種針對C語言特征代碼的提取系統,提取模塊中具體如下:首先對逐個C文件的函數按照特征分析模版完成分析;其次對全部的C文件特征分析結果進行匯總,對模版中同一個區域刪除重復的特征,形成特征匯總;最后,根據特征匯總表,選擇能覆蓋特征的函數,直至對全部特征進行全覆蓋,挑選出的函數即為特征代碼。
9.一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述計算機程序被加載至處理器時實現根據權利要求1-4任一項所述的一種針對C語言特征代碼的提取方法。
10.一種存儲介質,所述存儲介質存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現根據權利要求?1-4任一項所述的一種針對C語言特征代碼的提取方法。
...【技術特征摘要】
1.一種針對c語言特征代碼的提取方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種針對c語言特征代碼的提取方法,其特征在于,步驟(1)中,從數據結構、運算符、函數調用、預處理、程序控制定義c語言的特征;其中,數據結構包括:基本類型、構造類型、空類型、指針類型、強制類型轉換;構造類型包括數組、聯合體、結構體三個類型。
3.根據權利要求1所述的一種針對c語言特征代碼的提取方法,步驟(2)中,以函數為單元進行特征分析時,從返回類型、函數名、形參類型、函數體內基本類型、函數體內構造類型、函數內的預處理、函數內運算符、函數內過程控制八個區域,逐行代碼分析函數的語句,將使用的類型按照步驟(1)中定義特征命名填寫在對應區域。
4.根據權利要求1所述的一種針對c語言特征代碼的提取方法,步驟(3)中具體如下:首先對逐個c文件的函數按照特征分析模版完成分析;其次對全部的c文件特征分析結果進行匯總,對模版中同一個區域刪除重復的特征,形成特征匯總;最后,根據特征匯總表,選擇能覆蓋特征的函數,直至對全部特征進行全覆蓋,挑選出的函數即為特征代碼。
5.一種針對c語言特征代碼的提取系統,其特征在于,包括:
6.根據權利要求5所述的一種針對c語言特征代碼的提取系統,其特征在于,定義模塊中,從數據結構、運算符、函數...
【專利技術屬性】
技術研發人員:單貴平,左振雷,黃耀,李紀波,熊波,黃影,
申請(專利權)人:中國航發控制系統研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。