Precise slicing of interprocedural concurrent programs

被引:0
|
作者
Xiaofang Qi
Zhenliang Jiang
机构
[1] Southeast University,School of Computer Science and Engineering
[2] Southeast University,Key Laboratory of Computer Network and Information Integration, Ministry of Education
[3] China Huawei Technologies Co. Ltd,undefined
来源
关键词
program slicing; concurrent programs; reachability analysis; context sensitivity; dependence analysis;
D O I
暂无
中图分类号
学科分类号
摘要
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
页数:15
相关论文
共 50 条
  • [21] Slicing concurrent programs for model checking
    Dong, Wei
    Wang, Ji
    Qi, Zhi-Chang
    Jisuanji Xuebao/Chinese Journal of Computers, 2003, 26 (03): : 266 - 274
  • [22] Slicing concurrent Java']Java programs
    Chen, ZQ
    Xu, BW
    ACM SIGPLAN NOTICES, 2001, 36 (04) : 41 - 47
  • [23] CUBA: Interprocedural Context-UnBounded Analysis of Concurrent Programs
    Liu, Peizun
    Wahl, Thomas
    ACM SIGPLAN NOTICES, 2018, 53 (04) : 105 - 119
  • [24] CUBA: Interprocedural Context-UnBounded Analysis of Concurrent Programs
    Liu, Peizun
    Wahl, Thomas
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 105 - 119
  • [25] Semantic Correctness of Dependence-based Slicing for Interprocedural, Possibly Nonterminating Programs
    Masud, Abu Naser
    Lisper, Bjorn
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2021, 42 (04):
  • [26] Uncertainty Problem in Dynamic Slicing of Concurrent Programs
    Cheng, Jingde
    2009 INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE AND SYSTEMS, PROCEEDINGS, 2009, : 241 - 248
  • [27] A parallel algorithm for static slicing of concurrent programs
    Goswami, D
    Mall, R
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2004, 16 (08): : 751 - 769
  • [28] Improved algorithm for static slicing of concurrent programs
    Xiao, Jian-Yu
    Zhang, De-Yun
    Chen, Hai-Quan
    Dong, Hao
    Jisuanji Gongcheng/Computer Engineering, 2006, 32 (14): : 14 - 16
  • [29] PBMC: Symbolic Slicing for the Verification of Concurrent Programs
    Saissi, Habib
    Bokor, Peter
    Suri, Neeraj
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, ATVA 2015, 2015, 9364 : 344 - 360
  • [30] An efficient interprocedural dynamic slicing method
    Mund, G. B.
    Mall, Rajib
    JOURNAL OF SYSTEMS AND SOFTWARE, 2006, 79 (06) : 791 - 806