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

Abstract 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.
AbstractList 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.
Author Chu, William C.
Baowen Xu
Lin Chen
Zhifei Chen
Yuming Zhou
Zhaogui Xu
Author_xml – sequence: 1
  surname: Zhifei Chen
  fullname: Zhifei Chen
  email: chenzhifei@smail.nju.edu.cn
  organization: State key Lab. of Novel Software Technol., Nanjing Univ., Nanjing, China
– sequence: 2
  surname: Lin Chen
  fullname: Lin Chen
  email: lchen@nju.edu.cn
  organization: State key Lab. of Novel Software Technol., Nanjing Univ., Nanjing, China
– sequence: 3
  surname: Yuming Zhou
  fullname: Yuming Zhou
  email: zhouyuming@nju.edu.cn
  organization: State key Lab. of Novel Software Technol., Nanjing Univ., Nanjing, China
– sequence: 4
  surname: Zhaogui Xu
  fullname: Zhaogui Xu
  email: xuzhaogui@smail.nju.edu.cn
  organization: State key Lab. of Novel Software Technol., Nanjing Univ., Nanjing, China
– sequence: 5
  givenname: William C.
  surname: Chu
  fullname: Chu, William C.
  email: cchu@thu.edu.tw
  organization: Dept. of Comput. Sci., Tunghai Univ., Taichung, Taiwan
– sequence: 6
  surname: Baowen Xu
  fullname: Baowen Xu
  email: bwxu@nju.edu.cn
  organization: State key Lab. of Novel Software Technol., Nanjing Univ., Nanjing, China
BookMark eNotzDtPwzAUQGGDQKItnRlYIiaWhOtHbN-xSnlJRY1UmCPXtYtRHiVOh_x7KpXpLJ_OlFy1XesIuaOQUQr4VKw_ys2iyBhQkXG4IHNUmgqFyHOV60syAcUh5TRXN2Qa4w8ARcz1hDwsx9Y0wSabOtjQ7pPOJ-U4fHdtUvbdvjdNvCXX3tTRzf87I18vz5_FW7pav74Xi1UaGOghtdYxsEJyLSVFRrcmZxqEkhy0cLDdMgDwSu808wI9U-g9F9IiY24HgvIZeTx_D333e3RxqJoQratr07ruGCsqJWqNgsKJ3p9pcM5Vhz40ph8rqfE0A_4HNOtMTQ
CODEN IEEPAD
ContentType Conference Proceeding
Journal Article
DBID 6IE
6IH
CBEJK
RIE
RIO
7SC
8FD
JQ2
L7M
L~C
L~D
DOI 10.1109/COMPSAC.2014.30
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan (POP) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP) 1998-present
Computer and Information Systems Abstracts
Technology Research Database
ProQuest Computer Science Collection
Advanced Technologies Database with Aerospace
Computer and Information Systems Abstracts – Academic
Computer and Information Systems Abstracts Professional
DatabaseTitle Computer and Information Systems Abstracts
Technology Research Database
Computer and Information Systems Abstracts – Academic
Advanced Technologies Database with Aerospace
ProQuest Computer Science Collection
Computer and Information Systems Abstracts Professional
DatabaseTitleList
Computer and Information Systems Abstracts
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9781479935758
1479935751
EISSN 0730-3157
EndPage 228
ExternalDocumentID 6899220
Genre orig-research
GroupedDBID -~X
29F
29O
29Q
6IE
6IF
6IH
6IK
6IL
6IM
6IN
AAJGR
AAWTH
ADZIZ
ALMA_UNASSIGNED_HOLDINGS
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
IPLJI
OCL
RIE
RIL
RIO
RNS
7SC
8FD
JQ2
L7M
L~C
L~D
ID FETCH-LOGICAL-i208t-cce20c4638661921ba52804763084e0bb2000f78d82f49f279ff346c922ed0413
IEDL.DBID RIE
IngestDate Thu Jul 10 18:46:30 EDT 2025
Wed Aug 27 04:26:05 EDT 2025
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-i208t-cce20c4638661921ba52804763084e0bb2000f78d82f49f279ff346c922ed0413
Notes ObjectType-Article-2
SourceType-Scholarly Journals-1
ObjectType-Conference-1
ObjectType-Feature-3
content type line 23
SourceType-Conference Papers & Proceedings-2
PQID 1669889410
PQPubID 23500
PageCount 10
ParticipantIDs proquest_miscellaneous_1669889410
ieee_primary_6899220
PublicationCentury 2000
PublicationDate 20140701
PublicationDateYYYYMMDD 2014-07-01
PublicationDate_xml – month: 07
  year: 2014
  text: 20140701
  day: 01
PublicationDecade 2010
PublicationTitle Proceedings - International Computer Software & Applications Conference
PublicationTitleAbbrev CMPSAC
PublicationYear 2014
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0019958
ssib026764509
Score 1.6497364
Snippet Python is widely used for web programming and GUI development. Due to the dynamic features of Python, Python programs may contain various unlimited errors....
SourceID proquest
ieee
SourceType Aggregation Database
Publisher
StartPage 219
SubjectTerms Applications programs
Computer programs
Debugging
dynamic language
dynamic slicing
Dynamic tests
Dynamics
Educational institutions
Heuristic algorithms
Mathematical models
Monitoring
Performance analysis
Python
Runtime
Slicing
Software
Source code
Title Dynamic Slicing of Python Programs
URI https://ieeexplore.ieee.org/document/6899220
https://www.proquest.com/docview/1669889410
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV07T8MwELZKJ6YCLaK8FBAjSW3Xcc4jKqAKqVCpVOoWxY8gBEoQTQb49dh5FAkY2LzYOttnn8_33XcIXWisFOPEeicslD7jYeJDElGfEUUlhgSkrgCy93y6ZHercNVBl5tcGGNMBT4zgWtWsXydq9J9lY04OBZV66BvRcDrXK1WdyiPOAsdFVUTQRAihIbKh2AxmjzM5ouricNysaCCPLvhf13AlVW57aFZK08NJnkJykIG6vMHVeN_Bd5Bg-_8PW--sUy7qGOyPdRrCzh4zXnuo_Pruh69t3h1AfYnL0-9-YdjE3DdHW5rPUDL25vHydRviib4zxRD4StlKLbLPwbufCMik5ACZvYawcAMltLl5qQRaKApEymNRJqOGVdWTqOxNWn7qJvlmTlAnsbShOOIKPvKYCBSiARhidBKg6FUqSHquynHbzUvRtzMdojO2kWNra66AESSmbxcx4RzASAYwYd_dz1C226DajjsMeoW76U5sUa_kKfVbn8BaYmo-A
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LTwIxEG6IHvSECkZ8rsajC90y7bZHgxJUQBIg4bbZPtYYza4ROOivt91dMFEP3nppOu20nU7nm28QutRYKWCB9U6ASh8YjX0eh8SHQBGJecylzgGyQ9abwv2Mziroap0LY4zJwWem6Zp5LF9naum-ylqMOxZV66BvUgCgRbbWavcQFjKgjoyqjCEIQXlJ5hNg0eo8Dkbj645Dc0EzBz27AX5dwbld6VbRYCVRASd5aS4Xsqk-f5A1_lfkHVT_zuDzRmvbtIsqJt1D1VUJB6880TV0cVNUpPfGry7E_uRliTf6cHwCrrtDbs3raNq9nXR6flk2wX8mmC98pQzBVgFtzpx3FMiYEo7BXiSYg8FSuuycJOSakwREQkKRJG1gysppNLZGbR9tpFlqDpCnsTS0HQbKvjOAi4SHIoBYaKW5IUSpBqq5KUdvBTNGVM62gc5XixrZ3epCEHFqsuU8ChgTnAsI8OHfXc_QVm8y6Ef9u-HDEdp2yirAscdoY_G-NCf2CbCQp7nmvwB15axF
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+-+International+Computer+Software+%26+Applications+Conference&rft.atitle=Dynamic+Slicing+of+Python+Programs&rft.au=Zhifei+Chen&rft.au=Lin+Chen&rft.au=Yuming+Zhou&rft.au=Zhaogui+Xu&rft.date=2014-07-01&rft.pub=IEEE&rft.eissn=0730-3157&rft.spage=219&rft.epage=228&rft_id=info:doi/10.1109%2FCOMPSAC.2014.30&rft.externalDocID=6899220