[發明專利]一種C程序中條件表達式的數據流分析方法在審
| 申請號: | 201710097984.3 | 申請日: | 2017-02-23 |
| 公開(公告)號: | CN106909506A | 公開(公告)日: | 2017-06-30 |
| 發明(設計)人: | 董玉坤 | 申請(專利權)人: | 中國石油大學(華東) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 266580 山*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 程序 條件 表達式 數據流 分析 方法 | ||
1.一種C程序中條件表達式的數據流分析方法,其特征在于,該解決方法包括以下幾個步驟:
A、總結程序中各類條件表達式,并歸納出相關的語法特征;
B、應用抽象語法樹描述條件表達式的語法;
C、采用區間運算方法對條件表達式進行數據流分析。
2.根據權利要求1所述的C程序中條件表達式的數據流分析方法,其特征在于,條件表達式的一般形式為:表達式1?表達式2:表達式3,所述步驟A中的總結程序中各類條件表達式,并歸納出相關的語法特征的具體過程如下:
A1、按照表達式1是否會對變量取值有修改,分為無副作用表達式1、有副作用表達式1兩種類型;
A2、根據表達式2是否是空表達式,分為空表達式2與平凡表達式2兩種類型;
A3、根據表達式3是否是空表達式,分為空表達式3與平凡表達式3兩種類型。
3.根據權利要求1所述的C程序中條件表達式的數據流分析方法,其特征在于,所述步驟B中的應用抽象語法樹描述條件表達式的語法的具體過程如下:
B1、將條件表達式的語法表示為:LogicalORExpression()[“?”[Expression()]“:”ConditionalExpression()];
B2、采用CParser為被測程序生成抽象語法樹,并對被測程序中的所有條件表達式生成對應的抽象語法子樹。
4.根據權利要求1所述的采用區間運算方法對C程序中條件表達式的數據流分析方法,其特征在于,所述步驟C中對條件表達式進行數據流分析的具體過程如下:
C1、判斷條件表達式生成對應的抽象語法子樹中根節點的孩子結點數目,如果孩子結點數目為1,則將條件表達式的取值設置為全集區間,分析終止;
C2、在分析之前將活躍變量的取值區間信息暫存,采用區間運算技術分析表達式1的取值區間,并分析出表達式1對活躍變量副作用,如果表達式1對某些活躍變量產生了副作用,則將這些活躍變量新的取值區間替換原來的取值區間;
C3、如果表達式1的取值區間與區間[-∞,-1]∪[1,+∞]的交集不為空,而且表達式1的取值區間與區間[0,0]的交集為空,而且表達式2不是空表達式,則轉C4;如果表達式1的取值區間是[0,0],而且表達式3不是空表達式,則轉C5;如果表達式1的取值區間與區間[-∞,-1]∪[1,+∞]的交集不為空,而且表達式1的取值區間與區間[0,0]的交集也不為空,則轉C6;否則,將條件表達式的取值設置為全集區間,終止分析;
C4、基于更新后的活躍變量的取值區間信息,采用區間運算技術分析表達式2的取值區間,并將表達式2的取值區間作為條件表達式的取值區間,如果表達式2對活躍變量產生了副作用,則將這些活躍變量新的取值區間替換原來的取值區間;轉C10;
C5、基于更新后的活躍變量的取值區間信息,采用區間運算技術分析表達式3的取值區間,并將表達式3的取值區間作為條件表達式的取值區間,如果表達式3對活躍變量產生了副作用,則將這些活躍變量新的取值區間替換原來的取值區間;轉C10;
C6、如果表達式3為空表達式,則轉C4;如果表達式2為空表達式,則轉C5;否則轉C7;
C7、基于更新后的活躍變量的取值區間信息,采用區間運算技術分析表達式2的取值區間,如果表達式2對活躍變量產生了副作用,則先將原有活躍變量的取值區間進行備份,再將這些活躍變量新的取值區間與原來的取值區間的并作為新的取值區間;
C8、基于備份的活躍變量的取值區間信息,采用區間運算技術分析表達式3的取值區間,如果表達式3對活躍變量產生了副作用,則將這些活躍變量新的取值區間與原來的取值區間的并作為新的取值區間;
C9、將表達式2的取值區間與表達式3的取值區間的并作為條件表達式的取值區間;
C10、分析結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國石油大學(華東),未經中國石油大學(華東)許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710097984.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種陶瓷吊燒支架
- 下一篇:一種磁性材料冷卻裝置





