[發(fā)明專利]一種參數(shù)一致性驗證方法及裝置有效
| 申請?zhí)枺?/td> | 201810239209.1 | 申請日: | 2018-03-22 |
| 公開(公告)號: | CN108446122B | 公開(公告)日: | 2021-10-29 |
| 發(fā)明(設計)人: | 莊為;李詩宇;許佳麗 | 申請(專利權(quán))人: | 中國銀行股份有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 楊華;王寶筠 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 參數(shù) 一致性 驗證 方法 裝置 | ||
1.一種參數(shù)一致性驗證方法,其特征在于,包括:
從源代碼的程序中,獲取形參和實參的長度信息;
將所述形參和所述實參的長度信息保存在預設的數(shù)據(jù)表中,所述數(shù)據(jù)表包括:E_PARM_LIST表、C_PARM_LIST表、PGM_ENTRY表,CALL_STMT表和PGM表;
使用向上分析法和/或向下分析法比較形參的長度與實參的長度是否相同,并生成比較結(jié)果;所述形參的長度是從所述源代碼中的實參定義PROCEDURE DIVISION頭部和ENTRY語句中確定的;所述實參的長度是從所述源代碼中的CALL語句程序名及所述實參中確定的;
所述向上分析法包括:將所述PGM_ENTRY表中pgm_id與被檢查程序的id相同的所有記錄,作為候選程序入口;將所述CALL_STMT表中,target所指向的程序名與被檢查程序的pgm_name相同、且target_entry_name與所述PGM_ENTRY表中候選程序入口的entry_name相同的所有記錄,作為候選的CALL語句;判斷候選程序入口對應的所述E_PARM_LIST表記錄的所述形參的長度和所述候選的CALL語句對應的所述C_PARM_LIST表記錄的實參長度是否一致;
所述向下分析法包括:將每個所述CALL_STMT表中pgm_id與被檢查程序的id相同的記錄,作為所述候選的CALL語句;通過所述候選CALL語句找到其target所指向的所有程序名,并在所述PGM表中找到程序的id;根據(jù)所述PGM_ENTRY表找到與所述id相符,且entry_name與所述候選CALL語句的target_entry_name相同的記錄作為候選程序入口;判斷候選程序入口對應的所述C_PARM_LIST表記錄的所述實參的長度和候選的CALL語句對應的所述E_PARM_LIST表記錄的形參長度是否一致;
如果所述比較結(jié)果指示所述形參的長度與所述實參的長度不一致,則輸出所述形參和所述實參在所述源代碼中的位置信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述E_PARM_LIST表還用于:
存放為所述形參分配的唯一編號、所述形參所屬的所述程序的入口的唯一編號、所述形參的順序編號和所述形參的名稱。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述C_PARM_LIST表還用于:
存放為所述實參分配的唯一編號、所述實參所屬的所述程序中的CALL語句的唯一編號、所述實參的順序編號和所述實參的名稱。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)表還包括:
所述PGM表,用于存放所述源代碼中的程序的信息;所述PGM表中包括為所述程序分配的唯一編號、所述程序的名稱和所述程序的存儲路徑;
所述PGM_ENTRY表中包括:為所述程序的入口分配的唯一編號、所述程序的入口所屬的程序的唯一編號、所述程序的入口的順序編號、所述程序的入口的名稱以及所述程序的入口在所述源代碼中的位置信息;
所述CALL_STMT表中包括:為所述CALL語句分配的唯一編號、所述CALL語句所屬的程序的唯一編號、所述CALL語句的順序編號、所述CALL語句在所述源代碼中的位置信息、被所述CALL語句調(diào)用的程序的名稱、被CALL語句調(diào)用的程序的入口的名稱、以及動態(tài)調(diào)用標識。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)表還包括:
DYN_CALL_MAP表和DYN_CALLED_PGM表;
所述DYN_CALL_MAP表用于存放CALL語句變量名與可能的程序名稱之間的關系,其中所述變量名存放于所述CALL_STMT表的target字段;所述可能的程序名稱存放于所述DYN_CALLED_PGM表的called_pgm字段;
所述DYN_CALLED_PGM表用于存放動態(tài)調(diào)用的變量可能存儲的程序信息。
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國銀行股份有限公司,未經(jīng)中國銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810239209.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





