As Python is increasingly being adopted for large and complex programs, the importance of static analysis for Python (such as type inference) grows. Unfortunately, static analysis for Python remains a challenging task due to its dynamic language features and its abundant external libraries. To help fill this gap, this paper presents PoTo, an Andersen-style context-insensitive and flow-insensitive points-to analysis for Python. PoTo addresses Python-specific challenges and works for large programs via a novel hybrid evaluation, integrating traditional static points-to analysis with concrete evaluation in the Python interpreter for external library calls. We evaluate the analysis with two clients: type inference and call graph construction. The paper presents PoTo+, a static type inference for Python built on the points-to analysis. We evaluate PoTo+ and compare it to two state-of-the-art Python type inference techniques: (1) the static rule-based Pytype and (2) the deep-learning based DLInfer. Our results show that PoTo+ outperforms both Pytype and DLInfer on existing Python packages. We also compare PoTo with PyCG, the state-of-the-art call graph construction analysis for Python, and show that PoTo produces more complete and more precise call graphs.
Wed 2 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:45 | |||
14:00 21mTalk | Event Race Detection for Node.js Using Delay Injections Technical Papers Pre-print | ||
14:21 21mTalk | FuzzFlesh: Randomised Testing of Decompilers Via Control Flow Graph-based Program GenerationRemote Technical Papers | ||
14:42 21mTalk | PoTo: A Hybrid Andersen's Points-to Analysis for Python Technical Papers Ingkarat Rak-amnouykit Rensselaer Polytechnic Institute, Ana Milanova Rensselaer Polytechnic Institute, Guillaume Baudart Inria, Martin Hirzel IBM Research, Julian Dolby IBM Research | ||
15:03 21mTalk | Wastrumentation: Portable WebAssembly Dynamic Analysis with Support for Intercession Technical Papers Aäron Munsters Vrije Universiteit Brussel, Angel Luis Scull Pupo Sofware Languages Lab, Vrije Universiteit Brussel, Elisa Gonzalez Boix Vrije Universiteit Brussel | ||
15:24 21mTalk | WebGlitch: A Randomised Testing Tool for the WebGPU API Technical Papers |