Path-sensitive Type Analysis with Backward Analysis for Quality Assurance of Dynamic Typed Language Code

Ryutaro Kodama,Yoshitaka Arahori,Kathuhiko Gondow
DOI: https://doi.org/10.48550/arXiv.2302.07512
2023-02-15
Abstract:Precise and fast static type analysis for dynamically typed language is very difficult. This is mainly because the lack of static type information makes it difficult to approximate all possible values of a variable. Actually, the existing static type analysis methods are imprecise or slow. In this paper, we propose a novel method to improve the precision of static type analysis for Python code, where a backward analysis is used to obtain the path-sensitivity. By doing so, our method aims to obtain more precise static type information, which contributes to the overall improvement of static analysis. To show the effectiveness of our method, we conducted a preliminary experiment to compare our method implementation and the existing analysis tool with respect to precision and time efficiency. The result shows our method provides more precise type analysis with fewer false positives than the existing static type analysis tool. Also it shows our proposed method increases the analysis time, but it is still within the range of practical use.
Software Engineering
What problem does this paper attempt to address?