Precise slicing of interprocedural concurrent programs

被引:2
作者
Qi, Xiaofang [1 ,2 ]
Jiang, Zhenliang [3 ]
机构
[1] Southeast Univ, Sch Comp Sci & Engn, Nanjing 211189, Jiangsu, Peoples R China
[2] Southeast Univ, Key Lab Comp Network & Informat Integrat, Minist Educ, Nanjing 211189, Jiangsu, Peoples R China
[3] China Huawei Technol Co Ltd, Nanjing 210012, Jiangsu, Peoples R China
基金
中国国家自然科学基金;
关键词
program slicing; concurrent programs; reachability analysis; context sensitivity; dependence analysis; !text type='JAVA']JAVA[!/text;
D O I
10.1007/s11704-017-6189-3
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Program slicing is an effective technique for analyzing concurrent programs. However, when a conventional closure-based slicing algorithmfor sequential programs is applied to a concurrent interprocedural program, the slice is usually imprecise owing to the intransitivity of interference dependence. Interference dependence arises when a statement uses a variable defined in another statement executed concurrently. In this study, we propose a global dependence analysis approach based on a program reachability graph, and construct a novel dependence graph calledmarking-statement dependence graph (MSDG), in which each vertex is a 2-tuple of program state and statement. In contrast to the conventional program dependence graph where the vertex is a statement, the dependence relation in MSDG is transitive. When traversing MSDG, a precise slice will be obtained. To enhance the slicing efficiency without loss of precision, our slicing algorithm adopts a hybrid strategy. The procedures containing interaction statements between threads are inlined and sliced by the slicing algorithm based on program reachability graphs while allowing other procedures to be sliced as sequential programs. We have implemented our algorithm and three other representative slicing algorithms, and conducted an empirical study on concurrent Java programs. The experimental results show that our algorithm computes more precise slices than the other algorithms. Using partial-order reduction techniques, which are effective for reducing the size of a program reachability graph without loss of precision, our algorithm is optimized, thereby improving its performance to some extent.
引用
收藏
页码:971 / 986
页数:16
相关论文
共 25 条
[1]  
Burns A., 2009, REAL TIME SYSTEMS PR, V4th
[2]   Slicing concurrent Java']Java programs [J].
Chen, ZQ ;
Xu, BW .
ACM SIGPLAN NOTICES, 2001, 36 (04) :41-47
[3]  
CHENG J, 1997, P 10 ACM ANN TRI AD, P67
[4]   Advanced chopping of sequential and concurrent programs [J].
Giffhorn, Dennis .
SOFTWARE QUALITY JOURNAL, 2011, 19 (02) :239-294
[5]   Precise slicing of concurrent programs An Evaluation of static slicing algorithms for concurrent programs [J].
Giffhorn, Dennis ;
Hammer, Christian .
AUTOMATED SOFTWARE ENGINEERING, 2009, 16 (02) :197-234
[6]  
Giffhorn Dennis, 2012, THESIS
[7]  
Godefroid P, 1996, IEEE T SOFTWARE ENG, V22, P496, DOI [10.1109/32.538606, 10.1145/226295.226324]
[8]  
HATCLIFF J, 1999, P INT S STAT ANAL, V1694, P1
[9]   Interprocedural slicing using dependence graphs [J].
Horwitz, S ;
Reps, T ;
Binkley, D .
ACM SIGPLAN NOTICES, 2004, 39 (04) :229-231
[10]   Symmetry and partial order reduction techniques in model checking Rebeca [J].
Jaghoori, Mohammad Mahdi ;
Sirjani, Marjan ;
Mousavi, Mohammad Reza ;
Khamespanah, Ehsan ;
Movaghar, Ali .
ACTA INFORMATICA, 2010, 47 (01) :33-66