An Empirical Study on Dynamic Typing Related Practices in Python Systems
The dynamic typing discipline of Python allows developers to program at a high level of abstraction. However, type related bugs are commonly encountered in Python systems due to the lack of type declaration and static type checking. Especially, the misuse of dynamic typing discipline produces underlying bugs and increases maintenance efforts. In this paper, we introduce six types of dynamic typing related practices in Python programs, which are the common but potentially risky usage of dynamic typing discipline by developers. We also implement a tool named PYDYPE to detect them. Based on this tool, we conduct an empirical study on nine real-world Python systems (with the size of more than 460KLOC) to understand dynamic typing related practices. We investigate how widespread the dynamic typing related practices are, why they are introduced into the systems, whether their usage correlates with increased likelihood of bug occurring, and how developers fix dynamic typing related bugs. The results show that: (1) dynamic typing related practices exist inconsistently in different systems and Inconsistent Variable Types is most prevalent; (2) they are introduced into systems mainly during early development phase to promote development efficiency; (3) they have a significant positive correlation with bug occurring; (4) developers tend to add type checks or exception handling to fix dynamic typing related bugs. These results benefit future research in coding convention, language design, bug detection and fixing.
Wed 15 Jul Times are displayed in time zone: (UTC) Coordinated Universal Time change
00:00 - 01:00 | Session 9: For DevelopersResearch / Tool Demonstration / ERA at ICPC Chair(s): Anderson OliveiraPUC-Rio | ||
00:00 12mPaper | An Empirical Study on Dynamic Typing Related Practices in Python Systems Research Zhifei ChenNanjing University, Yanhui LiDepartment of Computer Science and Technology, Nanjing University, Bihuan ChenFudan University, Wanwangying MaNanjing University, Lin ChenNanjing University, Baowen XuNanjing University Media Attached | ||
00:12 12mPaper | Performing Tasks Can Improve Program Comprehension Mental Model of Novice Research Amal A. ShargabiQassim University, Syed Ahmad AljunidUniversiti Teknologi MARA, Muthukkaruppan AnnamalaiUniversiti Teknologi MARA, Abdullah Mohd ZinUniversiti Kebangsaan Malaysia Media Attached | ||
00:24 12mPaper | SimplyHover: Improving Comprehension of else Statements Tool Demonstration Ahmad JbaraComputer and Cyber Sciences, Augusta University, Georgia, USA, Bar Ben Michael, Or Shacham, Omer Tavor Media Attached | ||
00:36 12mPaper | Combining biometric data with focused document types classifies a success of program comprehension ERA Toyomi IshidaNara Institute of Science and Technology, Hidetake UwanoNational Institute of Technology, Nara College, Japan, Yoshiharu Ikutani Nara Institute of Science and Technology Media Attached | ||
00:48 12mPaper | Program Comprehension in Virtual Reality ERA James DominicClemson University, Brock TubreClemson Universtiy, Jada Houser Clemson University, Charles RitterClemson University, Deborah KunkelClemson University, Paige RodegheroClemson University Media Attached |