Python is a dynamic language with applications in many domains, and one of the most popular languages in recent years. To achieve higher code quality, developers have turned to “linters” that statically analyze the source code and warn about potential programming problems. However, the inherent limitations of static analysis and the dynamic nature of Python make it difficult or even impossible for static analysis to detect some problems. This paper presents DyLin, the first dynamic linter for Python. Similar to a traditional linter, the approach has an extensible set of checkers, which, unlike in traditional linters, search for specific programming anti-patterns by analyzing the program as it executes. A key contribution of this paper is a set of 15 Python-specific anti-patterns that are hard to find statically but amenable to dynamic analysis, along with corresponding checkers to detect them. Our evaluation applies DyLin to 37 popular open-source Python projects on GitHub and to a dataset of code submitted to Kaggle machine learning competitions, totaling over 683k lines of Python code. The approach reports a total of 68 problems, 59 of which are previously unknown true positives, i.e., a precision of 86.8%. The detected problems include bugs that cause incorrect values, such as inf, incorrect behavior, e.g., missing out on relevant events, unnecessary computations that slow down the program, and unintended data leakage from test data to the training phase of machine learning pipelines. These issues remained unnoticed in public repositories for more than 3.5 years, on average, despite the fact the corresponding code has been exercised by the developer-written tests. A comparison with popular static linters and a type checker shows that DyLin complements these tools by detecting problems that are missed statically. Based on our reporting of 42 issues to the developers, 23 issues have so far been fixed.
Tue 24 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:20 | Program Analysis 2Research Papers / Ideas, Visions and Reflections / Demonstrations at Pirsenteret 150 Chair(s): Martin Kellogg New Jersey Institute of Technology | ||
14:00 10mTalk | IceBear: A Fine-Grained Incremental Scheduler for C/C++ Static Analyzers Demonstrations | ||
14:10 20mTalk | Blended Analysis for Predictive Execution Research Papers Yi Li University of Texas at Dallas, Hridya Dhulipala University of Texas at Dallas, Aashish Yadavally University of Texas at Dallas, Xiaokai Rong University of Texas at Dallas, Shaohua Wang Central University of Finance and Economics, Tien N. Nguyen University of Texas at Dallas DOI | ||
14:30 20mTalk | Revisiting Optimization-Resilience Claims in Binary Diffing Tools: Insights from LLVM Peephole Optimization Analysis Research Papers Xiaolei Ren Macau University of Science and Technology, Mengfei Ren University of Alabama in Huntsville, Jeff Yu Lei University of Texas at Arlington, Jiang Ming Tulane University, USA DOI | ||
14:50 20mTalk | DyLin: A Dynamic Linter for Python Research Papers Aryaz Eghbali University of Stuttgart, Felix Burk University of Stuttgart, Michael Pradel University of Stuttgart DOI Pre-print | ||
15:10 10mTalk | Do you have 5 min? Improving Call Graph Analysis with Runtime Information Ideas, Visions and Reflections Jordan Samhi University of Luxembourg, Luxembourg, Marc Miltenberger Fraunhofer SIT; ATHENE, Marco Alecci University of Luxembourg, Steven Arzt Fraunhofer SIT; ATHENE, Tegawendé F. Bissyandé University of Luxembourg, Jacques Klein University of Luxembourg |
This room is located outside Clarion Hotel
This room is located in the Pirsenteret (The Pier Center) convention center. It is just outside the hotel, on the back, towards the fjord.
You should be able to go through the emergency exit at Clarion, just on the side of the Cosmos 3 wing, which will be bring you close to Pirsenteret.
The entrance to the center is from here:
https://maps.app.goo.gl/dU3qH6kAimXGBNHe7
Once inside, go all straight and you will find signage to reach the room. The room is known as room 150 inside the center.