Python probabilistic type inference with natural language support

作者: Zhaogui Xu , Xiangyu Zhang , Lin Chen , Kexin Pei , Baowen Xu

DOI: 10.1145/2950290.2950343

关键词:

摘要: We propose a novel type inference technique for Python programs. Type is difficult programs due to their heavy dependence on external APIs and the dynamic language features. observe that source code often contains lot of hints such as attribute accesses variable names. However, are not reliable. hence use probabilistic allow beliefs individual be propagated, aggregated, eventually converge probabilities types. Our results show our substantially outperforms state-of-the-art engine based abstract interpretation.

参考文章(27)
Anthony Cozzie, Hui Xue, Frank Stratton, Samuel T. King, Digging for data structures operating systems design and implementation. pp. 255- 266 ,(2008) , 10.5555/1855741.1855759
Simon Holm Jensen, Anders Møller, Peter Thiemann, None, Type Analysis for JavaScript static analysis symposium. pp. 238- 255 ,(2009) , 10.1007/978-3-642-03237-0_17
Etienne Kneuss, Philippe Suter, Viktor Kuncak, Runtime Instrumentation for Precise Flow-Sensitive Type Analysis Runtime Verification. ,vol. 6418, pp. 300- 314 ,(2010) , 10.1007/978-3-642-16612-9_23
Michael Salib, Starkiller: A Static Type Inferencer and Compiler for Python Massachusetts Institute of Technology. ,(2004)
Ondřej Lhoták, Laurie Hendren, Scaling Java points-to analysis using SPARK compiler construction. pp. 153- 169 ,(2003) , 10.1007/3-540-36579-6_12
Phillip Heidegger, Peter Thiemann, Recency types for analyzing scripting languages european conference on object-oriented programming. pp. 200- 224 ,(2010) , 10.5555/1883978.1883992
Wontae Choi, Satish Chandra, George Necula, Koushik Sen, SJS: A Type System for JavaScript with Fixed Object Layout static analysis symposium. pp. 181- 198 ,(2015) , 10.1007/978-3-662-48288-9_11
Ted Kremenek, Paul Twohey, Andrew Ng, Godmar Back, Dawson Engler, From uncertainty to belief: inferring the specification within operating systems design and implementation. pp. 161- 176 ,(2006) , 10.5555/1298455.1298471
Koushik Sen, Swaroop Kalasapur, Tasneem Brutch, Simon Gibbs, None, Jalangi: a selective record-replay and dynamic analysis framework for JavaScript foundations of software engineering. pp. 488- 498 ,(2013) , 10.1145/2491411.2491447
Jonathan S. Yedidia, Yair Weiss, William T. Freeman, Understanding belief propagation and its generalizations Exploring artificial intelligence in the new millennium. pp. 239- 269 ,(2003)