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 条
  • [1] Precise slicing of interprocedural concurrent programs
    Qi, Xiaofang
    Jiang, Zhenliang
    FRONTIERS OF COMPUTER SCIENCE, 2017, 11 (06) : 971 - 986
  • [2] Precise slicing of concurrent programs An Evaluation of static slicing algorithms for concurrent programs
    Giffhorn, Dennis
    Hammer, Christian
    AUTOMATED SOFTWARE ENGINEERING, 2009, 16 (02) : 197 - 234
  • [3] Precise slicing of concurrent programsAn Evaluation of static slicing algorithms for concurrent programs
    Dennis Giffhorn
    Christian Hammer
    Automated Software Engineering, 2009, 16
  • [4] Interprocedural Slicing of Generic Programs
    Barpanda, Soubhagya Sankar
    Biswal, Baikuntha Narayan
    Behera, Sasmita Rani
    Ray, Mitrabinda
    Mohapatra, Durga Prasad
    PROCEEDINGS OF THE 2009 INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING SYSTEMS, 2009, : 570 - 573
  • [5] An approach of monadic slicing for interprocedural programs
    Zhang, Ying-Zhou
    Fu, Wei
    Tien Tzu Hsueh Pao/Acta Electronica Sinica, 2013, 41 (08): : 1457 - 1461
  • [6] Relational interprocedural verification of concurrent programs
    Bertrand Jeannet
    Software & Systems Modeling, 2013, 12 : 285 - 306
  • [7] Relational interprocedural verification of concurrent programs
    Jeannet, Bertrand
    SEFM 2009: SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND FORMAL METHODS, 2009, : 83 - 92
  • [8] Relational interprocedural verification of concurrent programs
    Jeannet, Bertrand
    SOFTWARE AND SYSTEMS MODELING, 2013, 12 (02): : 285 - 306
  • [9] An efficient and precise dynamic slicing for concurrent component-oriented programs
    Pujari, Niharika
    Ray, Abhishek
    Singh, Jagannath
    INTERNATIONAL JOURNAL OF KNOWLEDGE-BASED AND INTELLIGENT ENGINEERING SYSTEMS, 2021, 25 (04) : 449 - 464
  • [10] Frameworks for Interprocedural Analysis of Concurrent Programs
    Seidl, Helmut
    Apinis, Kalmer
    Vojdani, Vesal
    SOFTWARE SYSTEMS SAFETY, 2014, 36 : 309 - 347