Program source code contains complex structure information, which can be represented in structured data forms like trees or graphs. To acquire the structural information in source code, most existing researches use abstract syntax trees (AST). A group of works add additional edges to ASTs to convert source code into graphs and use graph neural networks to learn representations for program graphs. Although these works provide additional control or data flow information to ASTs for downstream tasks, they neglect an important aspect of structure information in AST itself: the different types of nodes and edges. In ASTs, different nodes contain different kinds of information like variables or control flow, and the relation between a node and all its children can also be different. To address the information of node and edge types, we bring the idea of heterogeneous graphs to learning on source code and present a new formula of building heterogeneous program graphs from ASTs with additional type information for nodes and edges. We use the ASDL grammar of programming language to define the node and edge types of program graphs. Then we use heterogeneous graph neural networks to learn on these graphs. We evaluate our approach on two tasks: code comment generation and method naming. Both tasks require reasoning on the semantics of complete code snippets. Experiment results show that our approach outperforms baseline models, including homogeneous graph-based models, showing that leveraging the type information of nodes and edges in program graphs can help in learning program semantics.


翻译:程序源代码包含复杂的结构信息, 可以用树或图形等结构化的数据形式来表示。 为了获取源代码中的结构性信息, 大多数现有研究都使用抽象的语法树( AST ) 。 一组工作增加了 AST 的边缘, 将源代码转换成图形, 并使用图形神经网络来学习程序图形的演示。 虽然这些工作为 AST 提供了额外的控制或数据流信息, 用于下游任务, 但是它们忽略了 AST 中结构信息的一个重要方面: 不同的节点和边缘。 在 AST 中, 不同的节点包含不同种类的信息, 如变量或控制流, 以及节点与所有子之间的关系也可能不同 。 为了解决节点和边缘类型的信息, 我们带来了混合图的理念, 学习源代码, 并展示了从 AST 中构建混合程序图图的新的公式, 包括节点和边缘的额外类型信息。 我们使用 ASDL 语法语言来定义程序图的节点和边缘类型 。 然后, 我们使用可使用 CDI 图形的线性 网络网络网络来学习这些图形的 和直径化程序 。 我们要求 。 我们要求,, 以 格式化 格式 格式, 和 格式 格式, 要求, 和 以 格式化 格式化 格式化 格式 格式 格式,, 方法 格式,,, 格式 格式 格式,,,,, 和 和 格式 格式 格式 格式 格式 格式化,,, 。

0
下载
关闭预览

相关内容

《计算机信息》杂志发表高质量的论文,扩大了运筹学和计算的范围,寻求有关理论、方法、实验、系统和应用方面的原创研究论文、新颖的调查和教程论文,以及描述新的和有用的软件工具的论文。官网链接:https://pubsonline.informs.org/journal/ijoc
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
【2020新书】图机器学习,Graph-Powered Machine Learning
专知会员服务
339+阅读 · 2020年1月27日
GAN新书《生成式深度学习》,Generative Deep Learning,379页pdf
专知会员服务
202+阅读 · 2019年9月30日
图机器学习 2.2-2.4 Properties of Networks, Random Graph
图与推荐
10+阅读 · 2020年3月28日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
【论文】图上的表示学习综述
机器学习研究会
14+阅读 · 2017年9月24日
Arxiv
0+阅读 · 2021年2月10日
Arxiv
3+阅读 · 2018年4月10日
VIP会员
相关VIP内容
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
【2020新书】图机器学习,Graph-Powered Machine Learning
专知会员服务
339+阅读 · 2020年1月27日
GAN新书《生成式深度学习》,Generative Deep Learning,379页pdf
专知会员服务
202+阅读 · 2019年9月30日
相关资讯
图机器学习 2.2-2.4 Properties of Networks, Random Graph
图与推荐
10+阅读 · 2020年3月28日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
【论文】图上的表示学习综述
机器学习研究会
14+阅读 · 2017年9月24日
Top
微信扫码咨询专知VIP会员