Dynamic Slicing of Python Programs

Python is widely used for web programming and GUI development. Due to the dynamic features of Python, Python programs may contain various unlimited errors. Dynamic slicing extracts those statements from a program which affect the variables in a slicing criterion with a particular input. Dynamic slic...

Full description

Saved in:
Bibliographic Details
Published inProceedings - International Computer Software & Applications Conference pp. 219 - 228
Main Authors Zhifei Chen, Lin Chen, Yuming Zhou, Zhaogui Xu, Chu, William C., Baowen Xu
Format Conference Proceeding Journal Article
LanguageEnglish
Published IEEE 01.07.2014
Subjects
Online AccessGet full text
ISSN0730-3157
DOI10.1109/COMPSAC.2014.30

Cover

More Information
Summary:Python is widely used for web programming and GUI development. Due to the dynamic features of Python, Python programs may contain various unlimited errors. Dynamic slicing extracts those statements from a program which affect the variables in a slicing criterion with a particular input. Dynamic slicing of Python programs is essential for program debugging and fault location. In this paper, we propose an approach of dynamic slicing for Python programs which combines static analysis and dynamic tracing of the Python byte code. It precisely handles the dynamic features of Python, such as dynamic typing of variables, heavy usage of first-class objects, and dynamic modifications of classes and instances. Finally, we evaluate our approach on several Python programs. Experimental results show that the whole dynamic slicing for each subject program spends at most about 13 seconds on the average and costs at most 7.58 mb memory space overhead. Furthermore, the average slice ratio of Python source code ranges from 9.26% to 59.42%. According to it, our dynamic slicing approach can be effectively and efficiently performed. To the best of our knowledge, it is the first one of dynamic slicing for Python programs.
Bibliography:ObjectType-Article-2
SourceType-Scholarly Journals-1
ObjectType-Conference-1
ObjectType-Feature-3
content type line 23
SourceType-Conference Papers & Proceedings-2
ISSN:0730-3157
DOI:10.1109/COMPSAC.2014.30