CN112764738A - 基于多视图程序特征的代码自动生成方法及系统 - Google Patents

基于多视图程序特征的代码自动生成方法及系统 Download PDF

Info

Publication number
CN112764738A
CN112764738A CN202110070970.9A CN202110070970A CN112764738A CN 112764738 A CN112764738 A CN 112764738A CN 202110070970 A CN202110070970 A CN 202110070970A CN 112764738 A CN112764738 A CN 112764738A
Authority
CN
China
Prior art keywords
vector
code
embedded
cfg
adg
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110070970.9A
Other languages
English (en)
Inventor
吕晨
庄云亮
王潇
吴琼
吕蕾
高学剑
刘弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Normal University
Original Assignee
Shandong Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Normal University filed Critical Shandong Normal University
Priority to CN202110070970.9A priority Critical patent/CN112764738A/zh
Publication of CN112764738A publication Critical patent/CN112764738A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于数据处理领域,提供了一种基于多视图程序特征的代码自动生成方法及系统。其中,该方法包括解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。

Description

基于多视图程序特征的代码自动生成方法及系统
技术领域
本发明属于数据处理领域,尤其涉及一种基于多视图程序特征的代码自动生成方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
现有的代码生成技术中,往往会考虑源代码的浅层特性(比如:方法名、字符等),而忽略了源代码的抽象语法树(Abstract Syntax Tree,AST)和控制流图(Control FlowGraph,CFG)等结构化特性。尽管有的方法考虑了源代码的结构特性,对抽象语法树进行建模,但是,抽象语法树在高效表示代码结构信息同时也具有不足之处,难以捕捉代码所含方法对于整个类库的调用关系,不能使模型准确地对全局程序进行表达。基于深度学习的学习方法在源代码表示方面有很大的贡献,但是发明人发现,该方法对检索结果难以解释,缺乏可解释性,无法区分对最终结果影响最大的部分。
发明内容
为了解决上述背景技术中存在的至少一项技术问题,本发明提供一种基于多视图程序特征的代码自动生成方法及系统,其通过代码片段转换为对应的向量序列,同时考虑其结构与非结构特性,利用深度学习技术训练模型,通过注意力机制来解释各部分的贡献,来达到给定的自然语言生成代码的目的,从而提高软件的开发效率,减轻了软件开发人员的负担。。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种基于多视图程序特征的代码自动生成方法。
一种基于多视图程序特征的代码自动生成方法,包括:
解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;
解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;
解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;
将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;
将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。
本发明的第二个方面提供一种基于多视图程序特征的代码自动生成系统。
一种基于多视图程序特征的代码自动生成系统,包括:
AST嵌入向量生成模块,其用于解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;
CFG嵌入向量生成模块,其用于解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;
ADG的嵌入向量生成模块,其用于解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;
融合向量生成模块,其用于将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;
目标代码生成模块,其用于将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。
本发明的第三个方面提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于多视图程序特征的代码自动生成方法中的步骤。
本发明的第四个方面提供一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于多视图程序特征的代码自动生成方法中的步骤。
与现有技术相比,本发明的有益效果是:
本发明充分考虑源代码的多视图结构特征,即:抽象语法树(AST)语法结构信息,以及控制流程图(CFG)语义信息和API依赖图(ADG)等图的深层结构特性,采用融合机制将三部分的嵌入向量连接融合,有效融合代码的语法语义以及方法参数调用信息,弥补程序结构表达不完整的缺陷,通过代码片段转换为对应的向量序列,同时考虑其结构与非结构特性,利用深度学习技术训练模型,通过注意力机制来解释各部分的贡献,来达到给定的自然语言生成代码的目的,从而提高软件的开发效率,减轻了软件开发人员的负担。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的基于多视图程序特征的代码自动生成方法流程图;
图2是本发明实施例的AST建模流程图;
图3是本发明实施例的CFG建模流程图;
图4是本发明实施例的ADG建模流程图;
图5是本发明实施例的解码器工作流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一
如图1所示,本实施例的基于多视图程序特征的代码自动生成方法,其包括:
步骤S101:解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量。
在具体实施中,针对代码段的语法结构信息,本实施例对其抽象语法树AST建模,并对其节点进行嵌入向量表示。
如图2所示,生成语法树AST的具体过程为:
步骤S1011、对代码片段进行数据处理解析AST树。使用Java工具eclipse解析代码,生成其对应的AST树,生成后的信息存储在.txt文件中。解析后的信息包含两部分,一是AST树节点所代表的信息;二是节点与节点的指向关系,存储边的信息。利用在线可视化工具,可将解析后的AST树可视化。
步骤S1012、使用word embedding对AST树嵌入表示。解析后的AST的节点包含的信息有:该行代码的具体信息以及该行代码所属的类型。利用Transformer DocumentEmbeddings对整个文本的每个节点(N个节点)所代表的字符串进行编码,嵌入为词向量的形式。
步骤S1013、建立邻接矩阵存储边的指向关系。与节点的嵌入表示同理,构造邻接矩阵(N*N)存储节点与节点的指向关系。若两者存在指向关系,为1,否则,为0。
得到AST嵌入向量的具体过程为:
利用图卷积网络(Graph Convolutional Network,GCN)对AST树特征提取。将节点特征向量组成的矩阵X(N*D维),以及节点的指向关系组成的矩阵A(N*N维),作为GCN网络的输入,通过两层图卷积网络对AST树进行图嵌入提取特征。
GCN是一个神经网络层,利用公式一进行层与层之间的信息传播:
Figure BDA0002905766750000051
Figure BDA0002905766750000052
表示邻接矩阵A与单位矩阵I之和,引入自身节点,即:
Figure BDA0002905766750000053
Figure BDA0002905766750000054
Figure BDA0002905766750000055
的度矩阵,H为每层特征,对于输入层,H为X;σ为非线性激活函数,H(0)是初始向量表示,W(l)是第l层图卷积网络层的权重参数。
GCN输入一个图G=(V,E),通过若干层的GCN,每个节点的特征从X变为Z,无论经过多少层的处理,节点之间的连接关系,即A,共享。
构造两层GCN,激活函数分别用ReLU和Softmax,则整体的正向传播公式为:
Figure BDA0002905766750000061
步骤S102:解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量。
在具体实施中,生成控制流程图CFG的过程为:
如图3所示,CFG是一个有向图。一个CFG,G可表示为G=(B,E),其中B为块集{b1,b2,......,bn},每个表示程序的一个基本块,E为有向边{(bi,bj),(bk,bl),......},每一个都表示程序的控制流路径。每个基本块包含一个程序指令序列,有一个入口点(执行的第一条指令)和一个出口点(执行的最后一条指令)。本研究使用开源工具control-flow来解析代码生成CFG。使用word embedding编码方式,对其节点指令进行编码,最终得到每个节点的初始化嵌入矩阵。
在CFG中用圆表示结点,一个圆代表一条或多条语句;一条边必须终止于一个结点,即使这个结点并不代表任何语句(相当于一个空语句)。
采用与AST图嵌入相同的方法,利用GCN网络提取特征,具体步骤不再赘述。
步骤S103:解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量。
具体地,利用Javaassist和Spoon工具在代码片段中解析出的ADG进行向量建模,使用one-hot编码,对代码关系调用图中的每个节点方法名进行一维向量表示,最终得到每个节点的初始化嵌入矩阵。
如图4所示,生成API依赖图ADG的过程为:
将ADG定义为:
Figure BDA0002905766750000071
其中,M表示ADG中节点的集合,也表示目标代码中方法的集合,E表示ADG中边的集合,定义的该ADG为有向无环图,mk表示ADG中的节点,也表示目标代码中的方法,ek表示ADG中的边,
Figure BDA0002905766750000072
表示用于每一条边的标签,也表示目标代码库中的输入输出参数。在ADG中,每个节点mk存在多个输入参数I,代表多个前置条件,并且只存在一个输出参数o,对应目标代码中,只有方法mk多个输入参数全部满足,才可以调用该方法。
图嵌入的基本思想是对图结构中的邻居节点信息进行融合,从而将高位特征嵌入到地位特征中。GraphSAGE算法通过聚合函数为每个节点训练一个单独的嵌入向量,聚合得来的节点的向量特征并不是孤立存在的,而是融合了其邻居节点的信息。
1、对于图G=(M,E),对图上的每个结点v,设置它的初始embedding hv为它的输入特征xv。对邻居节点进行采样得到采样集,每个采样集中包含计算某一节点v的嵌入向量所需的邻居节点。
2、之后进行K次迭代,在每次迭代中,对每个结点v,聚合它的邻居结点(采样后)的在上一轮迭代中生成的结点表示
Figure BDA0002905766750000073
生成当前结点的邻居结点表示
Figure BDA0002905766750000074
之后连接
Figure BDA0002905766750000075
输入一个前馈神经网络得到结点的当前表示
Figure BDA0002905766750000076
聚合函数:
Figure BDA0002905766750000077
3、最终得到每个节点的表示
Figure BDA0002905766750000081
步骤S104:将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量。
利用CONCAT连接函数,将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量。融合后的向量本实施例采用最大池化算法将向量进行压缩降维,得到蕴含三者结构信息的融合向量。该向量有效地融合了多种结构信息,同时考虑了源代码的语法、语义以及方法参数调用关系,全方位的表达源代码信息。
步骤S105:将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。
解码器设定为使用LSTM。具体过程如图5所示:
步骤S1051:Encoder部分-编码器
输入的自然语言描述预处理为二维向量序列输入到LSTM的编码器中进行训练,最终得到的隐含层向量用于下一步的输入,利用注意力机制进行权重分配和解码器进行训练。
这一过程可以被定义为:
Ht=LSTMenc(Xt,Ht-1) (5)
其中Xt表示自然语言描述特征向量,Ht-1为神经网络隐含层状态。
步骤S1052:Decoder部分-解码器
①训练阶段:训练基于多视图特征融合方法的解码器,实现从自然语言描述到目标代码的解码工作。解码器端输入为编码器的词嵌入向量和融合向量,输出为相应的目标代码。与编码器相同,该部分同样使用LSTM来实现解码器的工作。
通过编码器的长短时记忆网络训练得到自然语言描述的隐含层向量Ht,使用注意力机制模型给每个自然语言描述特征赋予一个权重Cit。权重Cit的计算公式为:
αit=Wtσ(WhHt-1+b) (6)
Figure BDA0002905766750000091
其中Wt和Wh表示权重,b表示偏差,Ht-1表示编码器中长短时记忆网络生成的隐含层向量。
解码器通过反向传播的方式进行训练,使用自定义的输出层和softmax函数来计算当前时间步的概率分布并得到该序列的损失,定义序列模型的损失函数为:
Figure BDA0002905766750000092
其中,yt表示t时刻输入真实特征值,Ht表示t时刻长短时记忆网络的预测值,采用交叉熵损失函数对序列模型中的神经网络参数以及融合嵌入算法中的权重参数进行调整。
②预测阶段:
预测阶段解码器的输入为从代码段中提取的特征嵌入向量。将融合的嵌入向量输入到解码器中进行预测,得到相应的目标代码。
步骤S1053:预测结果
将自然语言描述特征输入到编码器模块由长短时记忆网络进行特征提取,利用基于注意力机制的解码器对目标代码的进行预测,即可得到相应的目标代码。
此处需要说明的是,步骤101~步骤S103的顺序可任意调整,并不影响本发明的基于多视图程序特征的代码自动生成方法的最终结果。
实施例二
本实施例提供了一种基于多视图程序特征的代码自动生成系统,其具体包括如下模块:
AST嵌入向量生成模块,其用于解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;
CFG嵌入向量生成模块,其用于解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;
ADG的嵌入向量生成模块,其用于解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;
融合向量生成模块,其用于将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;
目标代码生成模块,其用于将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。
此处需要说明的是,本实施例的基于多视图程序特征的代码自动生成系统中的各个模块,与实施例一中的基于多视图程序特征的代码自动生成方法中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的基于多视图程序特征的代码自动生成方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的基于多视图程序特征的代码自动生成方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于多视图程序特征的代码自动生成方法,其特征在于,包括:
解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;
解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;
解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;
将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;
将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。
2.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用Java工具eclipse解析代码段的语法结构。
3.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用word embedding对AST树嵌入表示。
4.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用开源工具control-flow来解析代码生成CFG。
5.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用word embedding编码方式,对CFG的节点指令进行编码,最终得到每个节点的初始化嵌入矩阵。
6.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,利用Javaassist和Spoon工具在代码片段中解析出的ADG进行向量建模,使用one-hot编码,对代码关系调用图中的每个节点方法名进行一维向量表示,最终得到每个节点的初始化嵌入矩阵。
7.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,输入的自然语言描述预处理为二维向量序列输入到LSTM的编码器中进行训练,最终得到的隐含层向量用于下一步的输入,利用注意力机制进行权重分配和解码器进行训练。
8.一种基于多视图程序特征的代码自动生成系统,其特征在于,包括:
AST嵌入向量生成模块,其用于解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;
CFG嵌入向量生成模块,其用于解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;
ADG的嵌入向量生成模块,其用于解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;
融合向量生成模块,其用于将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;
目标代码生成模块,其用于将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的基于多视图程序特征的代码自动生成方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的基于多视图程序特征的代码自动生成方法中的步骤。
CN202110070970.9A 2021-01-19 2021-01-19 基于多视图程序特征的代码自动生成方法及系统 Pending CN112764738A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110070970.9A CN112764738A (zh) 2021-01-19 2021-01-19 基于多视图程序特征的代码自动生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110070970.9A CN112764738A (zh) 2021-01-19 2021-01-19 基于多视图程序特征的代码自动生成方法及系统

Publications (1)

Publication Number Publication Date
CN112764738A true CN112764738A (zh) 2021-05-07

Family

ID=75703278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110070970.9A Pending CN112764738A (zh) 2021-01-19 2021-01-19 基于多视图程序特征的代码自动生成方法及系统

Country Status (1)

Country Link
CN (1) CN112764738A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326039A (zh) * 2021-06-21 2021-08-31 深圳市网通兴技术发展有限公司 医疗代码流程建模的异步代码生成方法及系统
CN114185595A (zh) * 2021-11-02 2022-03-15 武汉大学 基于代码结构引导的方法名生成方法
CN116302088A (zh) * 2023-01-05 2023-06-23 广东工业大学 一种代码克隆检测方法、存储介质及设备
CN117289919A (zh) * 2023-11-24 2023-12-26 浙江口碑网络技术有限公司 一种数据处理方法、装置及电子设备
CN117573084A (zh) * 2023-08-02 2024-02-20 广东工业大学 一种基于逐层融合抽象语法树的代码补全方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968766A (zh) * 2010-10-21 2011-02-09 上海交通大学 计算机程序实际运行时触发软件漏洞的检测系统
CN110673840A (zh) * 2019-09-23 2020-01-10 山东师范大学 一种基于标签图嵌入技术的自动代码生成方法及系统
CN111783100A (zh) * 2020-06-22 2020-10-16 哈尔滨工业大学 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN111931181A (zh) * 2020-07-07 2020-11-13 北京理工大学 基于图挖掘的软件逻辑漏洞检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968766A (zh) * 2010-10-21 2011-02-09 上海交通大学 计算机程序实际运行时触发软件漏洞的检测系统
CN110673840A (zh) * 2019-09-23 2020-01-10 山东师范大学 一种基于标签图嵌入技术的自动代码生成方法及系统
CN111783100A (zh) * 2020-06-22 2020-10-16 哈尔滨工业大学 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN111931181A (zh) * 2020-07-07 2020-11-13 北京理工大学 基于图挖掘的软件逻辑漏洞检测方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326039A (zh) * 2021-06-21 2021-08-31 深圳市网通兴技术发展有限公司 医疗代码流程建模的异步代码生成方法及系统
CN113326039B (zh) * 2021-06-21 2022-02-18 深圳市网通兴技术发展有限公司 医疗代码流程建模的异步代码生成方法及系统
CN114185595A (zh) * 2021-11-02 2022-03-15 武汉大学 基于代码结构引导的方法名生成方法
CN114185595B (zh) * 2021-11-02 2024-03-29 武汉大学 基于代码结构引导的方法名生成方法
CN116302088A (zh) * 2023-01-05 2023-06-23 广东工业大学 一种代码克隆检测方法、存储介质及设备
CN116302088B (zh) * 2023-01-05 2023-09-08 广东工业大学 一种代码克隆检测方法、存储介质及设备
CN117573084A (zh) * 2023-08-02 2024-02-20 广东工业大学 一种基于逐层融合抽象语法树的代码补全方法
CN117573084B (zh) * 2023-08-02 2024-04-12 广东工业大学 一种基于逐层融合抽象语法树的代码补全方法
CN117289919A (zh) * 2023-11-24 2023-12-26 浙江口碑网络技术有限公司 一种数据处理方法、装置及电子设备
CN117289919B (zh) * 2023-11-24 2024-02-20 浙江口碑网络技术有限公司 一种数据处理方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN110673840B (zh) 一种基于标签图嵌入技术的自动代码生成方法及系统
CN110018820B (zh) 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法
CN112764738A (zh) 基于多视图程序特征的代码自动生成方法及系统
WO2020088330A1 (en) Latent space and text-based generative adversarial networks (latext-gans) for text generation
JP2018195314A (ja) 再帰型ニューラルネットワークアーキテクチャの生成のためのドメイン固有言語
CN113342318B (zh) 基于多视图代码特征的细粒度代码自动生成方法及系统
CN113449858A (zh) 一种神经网络模型的处理方法以及相关设备
CN113064586B (zh) 一种基于抽象语法树增广图模型的代码补全方法
CN113641819A (zh) 基于多任务稀疏共享学习的论辩挖掘系统及方法
CN113609284A (zh) 一种融合多元语义的文本摘要自动生成方法及装置
CN115358407B (zh) 基于张量网络的近似量子编译方法、系统和电子设备
CN115048141A (zh) 一种基于图引导的Transformer模型代码注释自动生成方法
Morton et al. Grammar filtering for syntax-guided synthesis
CN114528398A (zh) 一种基于交互双重图卷积网络的情感预测方法及系统
CN117573084B (zh) 一种基于逐层融合抽象语法树的代码补全方法
CN114692624A (zh) 一种基于多任务迁移的信息抽取方法、装置及电子设备
CN114254323A (zh) 基于PCODE和Bert的软件脆弱性分析方法及系统
KR102610431B1 (ko) 인공지능 분석 기반 프로그램 소스코드의 요약문 생성 장치 및 방법
CN114185595B (zh) 基于代码结构引导的方法名生成方法
CN112434143B (zh) 基于gru单元隐藏状态约束的对话方法、存储介质及系统
CN111126047B (zh) 一种同义文本生成的方法及装置
CN117573085B (zh) 一种基于层次结构特征和序列特征的代码补全方法
Kothari et al. Minimizing the size of test suite using genetic algorithm for object oriented program
CN118170871B (zh) 一种基于依赖的多粒度代码检索方法
Thingom et al. A Review on Machine Learning in IoT Devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination