[發(fā)明專利]一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析方法有效
申請?zhí)枺?/td> | 201210362752.3 | 申請日: | 2012-09-25 |
公開(公告)號: | CN102880493A | 公開(公告)日: | 2013-01-16 |
發(fā)明(設(shè)計)人: | 馬曉星;曹春;呂建;蘇萍 | 申請(專利權(quán))人: | 南京大學(xué) |
主分類號: | G06F9/445 | 分類號: | G06F9/445 |
代理公司: | 南京蘇高專利商標事務(wù)所(普通合伙) 32204 | 代理人: | 夏雪 |
地址: | 210046 江蘇省南京市棲霞區(qū)仙*** | 國省代碼: | 江蘇;32 |
權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關(guān)鍵詞: | 一種 構(gòu)件 動態(tài) 依賴 關(guān)系 自動 分析 方法 | ||
1.一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析方法,其特征在于包括如下步驟:
1)靜態(tài)分析階段,構(gòu)建程序的動態(tài)依賴自動機,所述動態(tài)依賴自動機包括狀態(tài),事件和轉(zhuǎn)移,其中狀態(tài)指程序在一個代碼塊中穩(wěn)定不變的動態(tài)依賴關(guān)系,事件指可能引起程序的動態(tài)依賴關(guān)系發(fā)生變化的節(jié)點,轉(zhuǎn)移是指當事件發(fā)生時,程序從一個狀態(tài)轉(zhuǎn)移到新的狀態(tài);
2)靜態(tài)分析階段,計算動態(tài)依賴自動機中的動態(tài)依賴關(guān)系的Future信息,所述動態(tài)依賴關(guān)系包括Future信息和Past信息,其中Future信息是指程序在當前執(zhí)行環(huán)境下,將來可能使用的構(gòu)件集合,Past信息則指其過去使用過的構(gòu)件集合;
3)靜態(tài)分析階段,將已經(jīng)分析出的動態(tài)依賴自動機和驅(qū)動動態(tài)依賴自動機正確自動運行的觸發(fā)信息插入原程序中;
4)動態(tài)分析階段,當程序運行時,其對應(yīng)的動態(tài)依賴自動機在觸發(fā)信息的驅(qū)動下自動運行,同時自適應(yīng)地獲得當前執(zhí)行環(huán)境下的動態(tài)依賴關(guān)系。
2.根據(jù)權(quán)利要求1所述的一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析方法,其特征在于所述步驟1)中構(gòu)建程序的動態(tài)依賴自動機的具體步驟為:
1.1)構(gòu)建程序的控制流圖;
1.2)在程序的控制流圖上,采用深度優(yōu)先的搜索算法,從程序的入口節(jié)點開始,遞歸地分析每個節(jié)點;同時,初始化動態(tài)依賴自動機的初始狀態(tài)作為當前狀態(tài)。
3.根據(jù)權(quán)利要求2所述的一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析方法,其特征在于所述步驟1.2)中分析節(jié)點的具體步驟為:
遇到可能引起程序的動態(tài)依賴關(guān)系發(fā)生變化的節(jié)點,則執(zhí)行以下步驟:
1.2.1)動態(tài)依賴自動機生成一個新狀態(tài),表示該節(jié)點執(zhí)行后的動態(tài)依賴關(guān)系,并將當前狀態(tài)、對應(yīng)事件和新狀態(tài)用轉(zhuǎn)移關(guān)系連接,并將新狀態(tài)作為當前狀態(tài);
1.2.2)在原程序該節(jié)點后插入包含該事件信息的觸發(fā)狀態(tài)跳轉(zhuǎn)的語句。
4.根據(jù)權(quán)利要求1所述的一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析方法,其特征在于所述步驟2)中計算動態(tài)依賴關(guān)系中的Future信息的具體步驟為:
2.1)對動態(tài)依賴自動機中的每個轉(zhuǎn)移,將轉(zhuǎn)移之前的狀態(tài)的動態(tài)依賴關(guān)系的Future信息更新為轉(zhuǎn)移之前狀態(tài)的動態(tài)依賴關(guān)系、觸發(fā)轉(zhuǎn)移的事件使用的構(gòu)件與轉(zhuǎn)移之后的狀態(tài)的動態(tài)依賴關(guān)系的Future信息三者的并集;
2.2)重復(fù)2.1)的步驟,直到所有狀態(tài)的動態(tài)依賴關(guān)系的Future信息不發(fā)生變化為止,此時得到了包含動態(tài)依賴關(guān)系的Future信息的動態(tài)依賴自動機。
5.根據(jù)權(quán)利要求2所述的一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析方法,其特征在于所述步驟3)的具體步驟為:
3.1)在原程序的注釋中插入所述步驟2)得到的動態(tài)依賴自動機。
6.根據(jù)權(quán)利要求1所述的一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析技方法,其特征在于所述步驟4)的具體步驟為:
4.1)程序運行時,其對應(yīng)的動態(tài)依賴自動機從初始狀態(tài)開始運行,同時初始化此時的動態(tài)依賴關(guān)系中的Past信息為空.
4.2)每執(zhí)行步驟3)插入的觸發(fā)信息,則觸發(fā)程序自適應(yīng)地從當前狀態(tài)轉(zhuǎn)移到下一狀態(tài),同時更新程序當前的動態(tài)依賴關(guān)系。
7.根據(jù)權(quán)利要求6所述的一種構(gòu)件間動態(tài)依賴關(guān)系的自動分析技方法,其特征在于所述步驟4.2)中執(zhí)行更新的具體步驟為:
4.2.1)新狀態(tài)的動態(tài)依賴關(guān)系中的Future信息為搜索包含F(xiàn)uture信息的動態(tài)依賴自動機,根據(jù)當前狀態(tài)找到經(jīng)該觸發(fā)信息轉(zhuǎn)移到的下一狀態(tài),該下一狀態(tài)的內(nèi)容即為新狀態(tài)的Future信息;
4.2.2)新狀態(tài)的動態(tài)依賴關(guān)系中的Past信息更新為當前狀態(tài)的Past信息與觸發(fā)狀態(tài)轉(zhuǎn)移的事件使用的構(gòu)件的并集。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210362752.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。