Dynamically typed languages such as JavaScript and Python have emerged as the most popular programming languages in use. Important benefits can accrue from including type annotations in dynamically typed programs. This approach to gradual typing is exemplified by the TypeScript programming system which allows programmers to specify partially typed programs, and then uses static analysis to infer the remaining types. However, in general, the effectiveness of static type inference is limited and depends on the complexity of the program's structure and the initial type annotations. As a result, there is a strong motivation for new approaches that can advance the state of the art in statically predicting types in dynamically typed programs, and that do so with acceptable performance for use in interactive programming environments. Previous work has demonstrated the promise of probabilistic type inference using deep learning. In this paper, we advance past work by introducing a range of graph neural network (GNN) models that operate on a novel type flow graph (TFG) representation. The TFG represents an input program's elements as graph nodes connected with syntax edges and data flow edges, and our GNN models are trained to predict the type labels in the TFG for a given input program. We study different design choices for our GNN models for the 100 most common types in our evaluation dataset, and show that our best two GNN configurations for accuracy achieve a top-1 accuracy of 87.76% and 86.89% respectively, outperforming the two most closely related deep learning type inference approaches from past work -- DeepTyper with a top-1 accuracy of 84.62% and LambdaNet with a top-1 accuracy of 79.45%. Further, the average inference throughputs of those two configurations are 353.8 and 1,303.9 files/second, compared to 186.7 files/second for DeepTyper and 1,050.3 files/second for LambdaNet.


翻译:动态键入语言, 如 JavaScript 和 Python 等动态键入语言( JavaScript 和 Python ) 已经成为最受欢迎的编程语言。 动态键入程序中包含类型说明可以带来重要的好处。 这种逐步打字的方法以TypeScript 编程系统为范例, 使程序员能够指定部分的编程程序, 然后使用静态分析来推断剩余类型。 然而, 一般来说, 静态类型神经网络的有效性有限, 取决于程序结构的复杂性和初始类型说明。 因此, 有一种强大的动力, 新的方法可以在动态型式程序中的静态预测类型中提高艺术的准确性, 静态预测在动态型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内准确。 和二号内型内型内型内型内型内型内型内型内基内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内, 有二内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内,, 内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内,内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内型内,内型内型

0
下载
关闭预览

相关内容

机器学习系统设计系统评估标准
专知会员服务
28+阅读 · 2021年8月2日
【图与几何深度学习】Graph and geometric deep learning,49页ppt
计算机 | 入门级EI会议ICVRIS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年6月24日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
【论文】变分推断(Variational inference)的总结
机器学习研究会
39+阅读 · 2017年11月16日
【论文】图上的表示学习综述
机器学习研究会
14+阅读 · 2017年9月24日
最佳实践:深度学习用于自然语言处理(三)
待字闺中
3+阅读 · 2017年8月20日
Arxiv
7+阅读 · 2021年10月19日
Arxiv
56+阅读 · 2021年5月3日
VIP会员
相关资讯
计算机 | 入门级EI会议ICVRIS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年6月24日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
【论文】变分推断(Variational inference)的总结
机器学习研究会
39+阅读 · 2017年11月16日
【论文】图上的表示学习综述
机器学习研究会
14+阅读 · 2017年9月24日
最佳实践:深度学习用于自然语言处理(三)
待字闺中
3+阅读 · 2017年8月20日
Top
微信扫码咨询专知VIP会员