期刊文献+
共找到167篇文章
< 1 2 9 >
每页显示 20 50 100
Matching Source Code Using Abstract Syntax Trees in Version Control Systems 被引量:1
1
作者 Jonathan van den Berg Hirohide Haga 《Journal of Software Engineering and Applications》 2018年第6期318-340,共23页
Software projects are becoming larger and more complicated. Managing those projects is based on several software development methodologies. One of those methodologies is software version control, which is used in the ... Software projects are becoming larger and more complicated. Managing those projects is based on several software development methodologies. One of those methodologies is software version control, which is used in the majority of worldwide software projects. Although existing version control systems provide sufficient functionality in many situations, they are lacking in terms of semantics and structure for source code. It is commonly believed that improving software version control can contribute substantially to the development of software. We present a solution that considers a structural model for matching source code that can be used in version control. 展开更多
关键词 VERSION Control Source Code MATCHING abstract syntax tree STRUCTURED Representation
下载PDF
基于增强AST的图神经网络函数级代码漏洞检测方法
2
作者 顾守珂 陈文 《计算机科学》 CSCD 北大核心 2023年第6期283-290,共8页
软件漏洞逐年递增,安全问题愈发严重。在软件项目的交付阶段对原始代码进行漏洞检测可以有效避免后期运行时的安全漏洞,而代码漏洞检测依赖于有效的代码表征。传统的基于软件度量的表征方法与漏洞关联性较弱,难以对漏洞信息进行有效表... 软件漏洞逐年递增,安全问题愈发严重。在软件项目的交付阶段对原始代码进行漏洞检测可以有效避免后期运行时的安全漏洞,而代码漏洞检测依赖于有效的代码表征。传统的基于软件度量的表征方法与漏洞关联性较弱,难以对漏洞信息进行有效表征。近年来,机器学习为漏洞的智能化发现提供了新的思路,但该方法同样可能遗漏关键的代码特征信息。针对以上问题,文中在传统抽象语法树(AST)上增加控制依赖、数据依赖和语句序列边生成增强抽象语法树(EXAST)图结构,对原始代码进行表征以更好地处理代码结构化信息,并采用词向量嵌入算法(Word2Vec)将代码信息初始化为机器能够识别和学习的数值向量。同时,在传统的图神经网络(GNN)中引入门控循环单元(GRU),构建图识别模型,以缓解梯度消失并加强图结构中长期信息的传播,从而增强了代码执行的时序关系,提高了漏洞检测的准确度。最后在SARD公开数据集上对模型进行对比测试,实现了函数粒度的代码漏洞检测,相比传统的漏洞检测方法,准确率和F1分值分别最大提高了32.54%和44.99,实验结果证明了所提方法对代码漏洞检测的有效性。 展开更多
关键词 漏洞挖掘 图神经网络 深度学习 抽象语法树 门控循环单元
下载PDF
一种基于AST的代码抄袭检测方法 被引量:8
3
作者 张丽萍 刘东升 +1 位作者 李彦臣 钟美 《计算机应用研究》 CSCD 北大核心 2011年第12期4616-4620,共5页
针对目前代码抄袭检测方面的研究大多是基于程序源码层面进行相似度比较,不需要对代码进行语法分析,由于忽略程序语法语义,对稍加结构修改的抄袭行为无法有效检测的现状,提出一种基于AST的代码抄袭检测方法。先将代码进行格式化预处理,... 针对目前代码抄袭检测方面的研究大多是基于程序源码层面进行相似度比较,不需要对代码进行语法分析,由于忽略程序语法语义,对稍加结构修改的抄袭行为无法有效检测的现状,提出一种基于AST的代码抄袭检测方法。先将代码进行格式化预处理,再进行词法分析、语法分析,得到对应的AST;然后遍历AST生成代码序列,对代码序列进行相似度计算,从而得到代码的抄袭检测报告。实验结果表明,该方法能够有效检测出C程序代码的抄袭行为,并对C++、Java等多种程序代码的抄袭检测具有一定的通用性和可扩展性。 展开更多
关键词 抽象语法树 抄袭检测 开源语法分析器 相似度
下载PDF
基于AST的程序代码相似性度量研究 被引量:6
4
作者 朱波 郑虹 +1 位作者 孙琳琳 杨友星 《吉林大学学报(信息科学版)》 CAS 2015年第1期99-104,共6页
针对程序代码相似性检测度量忽略程序语义、出现无效度量的问题,提出一种基于抽象语法树(AST:Abstract Syntax Tree)的程序代码相似性度量方法。通过预处理去除生成AST时的冗余信息,再进行词法语法分析,得到相应的AST;然后通过自适应阈... 针对程序代码相似性检测度量忽略程序语义、出现无效度量的问题,提出一种基于抽象语法树(AST:Abstract Syntax Tree)的程序代码相似性度量方法。通过预处理去除生成AST时的冗余信息,再进行词法语法分析,得到相应的AST;然后通过自适应阈值的选取方式,利用AST遍历得到的程序属性、方法序列,对AST进行相似度计算,最终判定是否抄袭,生成相似度检测报告。实验结果表明,该方法能有效检测Java程序代码的多种抄袭行为。 展开更多
关键词 相似性度量 抽象语法树 相似度 自适应阈值
下载PDF
基于依赖增强的分层抽象语法树的代码克隆检测
5
作者 万泽轩 谢春丽 +1 位作者 吕泉润 梁瑶 《计算机应用》 CSCD 北大核心 2024年第4期1259-1268,共10页
在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深... 在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深入挖掘AST中的深层语义和结构信息。针对上述问题,提出一种基于依赖增强的分层抽象语法树(DEHAST)的代码克隆检测方法。首先,对AST进行分层处理,将AST划分得到不同的语义层次;其次,为AST的不同层次添加相应的依赖增强边构建DEHAST,将简单的AST变成具有更丰富程序语义的异构图;最后,使用图匹配网络(GMN)模型检测异构图的相似性,实现代码克隆检测。在BigCloneBench和Google Code Jam两个数据集上的实验结果显示,DEHAST能够检测100%的Type-1和Type-2代码克隆、99%的Type-3代码克隆和97%的Type-4代码克隆;与基于树的方法ASTNN(AST-based Neural Network)相比,F1分数均提高了4个百分点,验证了DEHAST可以较好地完成代码语义克隆检测。 展开更多
关键词 代码克隆检测 语义克隆 抽象语法树 深度学习 图匹配网络
下载PDF
编译型嵌入式Python的设计与实现
6
作者 李春亭 王宜怀 +1 位作者 施连敏 张露 《计算机工程与设计》 北大核心 2024年第1期79-87,共9页
针对面向微控制器的解释型MicroPython具有实时性弱、占用存储空间大和可移植性较差等问题,提出一种将Python语言转化为C++语言并将构件层与应用层分离的编译型嵌入式Python方案,设计基于抽象语法树及类型注释的源码映射机制。在此基础... 针对面向微控制器的解释型MicroPython具有实时性弱、占用存储空间大和可移植性较差等问题,提出一种将Python语言转化为C++语言并将构件层与应用层分离的编译型嵌入式Python方案,设计基于抽象语法树及类型注释的源码映射机制。在此基础上,设计嵌入式Python编译器,实现集成开发环境AHL-GEC-IDE(for Python版),完成Python源文件的编辑、编译、链接和下载。实践结果表明,该编译型Python方案可行,为嵌入式人工智能领域提供了一种实时性较高、编辑编译方便、可移植性较强的编译型Python集成开发环境。 展开更多
关键词 编译型嵌入式Python 微型Python解释器 微控制器 抽象语法树 类型注释 混合编程 可移植性
下载PDF
位置结构导向的多模态代码摘要生成方法
7
作者 张学君 侯霞 《北京信息科技大学学报(自然科学版)》 2024年第2期43-49,共7页
针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未... 针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未登录词问题,并通过四元组的形式保留抽象语法树的结构信息。这样的组合使得模型在处理源代码时不仅能够全面地捕捉代码的语义特征,还能够准确地学习到代码的语法结构。在真实Java数据集上的实验结果表明,该模型在BLEU、METEOR和ROUGE指标上均优于基线模型,从而验证了其在生成更准确代码摘要方面的有效性。 展开更多
关键词 自动代码摘要 字节对编码 抽象语法树 TRANSFORMER
下载PDF
基于AST的存储过程自动评估模型研究
8
作者 王海燕 杨鹤标 《计算机应用与软件》 CSCD 北大核心 2013年第3期170-173,共4页
针对数据库机器学习过程中的存储过程评估问题,提出基于AST的存储过程自动评估模型。从静态评估的角度,给出了模型的整体框架;以构建存储过程的抽象语法树AST(Abstract Syntax Tree)为分析基础,通过改进的树编辑距离映射的代价模型,计... 针对数据库机器学习过程中的存储过程评估问题,提出基于AST的存储过程自动评估模型。从静态评估的角度,给出了模型的整体框架;以构建存储过程的抽象语法树AST(Abstract Syntax Tree)为分析基础,通过改进的树编辑距离映射的代价模型,计算用户存储过程代码和目标程序之间的相似度;最后,利用学习样例说明了评估方法的有效性。 展开更多
关键词 存储过程 ast 相似度 树编辑距离
下载PDF
从GCC的AST文本提取C源程序静态信息的方法 被引量:2
9
作者 封战胜 苏小红 马培军 《哈尔滨工业大学学报》 EI CAS CSCD 北大核心 2010年第7期1100-1103,共4页
为了能够正确的分析源程序的控制依赖关系和数据依赖关系,以便在此基础上进行程序切片及冗余代码和重复代码检测,提出一种利用GCC抽象语法树(AST)文本来提取源程序静态信息的方法.首先,对GCCAST文本进行标准化及消除文本中与控制流分析... 为了能够正确的分析源程序的控制依赖关系和数据依赖关系,以便在此基础上进行程序切片及冗余代码和重复代码检测,提出一种利用GCC抽象语法树(AST)文本来提取源程序静态信息的方法.首先,对GCCAST文本进行标准化及消除文本中与控制流分析和数据流分析无关的结点信息;其次,构建控制依赖子图;同时如果需要数据流分析,在控制依赖子图的基础上构建控制流图,在控制流图的基础上构建数据流子图;最后通过引入过程间分析来完善系统依赖图.实验结果表明,这种方法基本能正确的分析源程序的控制依赖和数据依赖关系,具有更好的适应性和灵活性. 展开更多
关键词 程序静态分析 ast 控制依赖 数据依赖 控制流图 系统依赖图
下载PDF
一种改进ASTNN网络的PHP代码漏洞挖掘方法 被引量:8
10
作者 胡建伟 赵伟 +1 位作者 崔艳鹏 崔俊洁 《西安电子科技大学学报》 EI CAS CSCD 北大核心 2020年第6期164-173,共10页
针对传统的动静态PHP漏洞挖掘技术效率低、误报率高、漏洞匹配规则过于单一且不具有泛化性的问题,以及现有的以token序列、软件度量等作为特征的神经网络模型不能很好地理解代码语义的问题,提出了一种基于ASTNN深度神经网络的PHP漏洞挖... 针对传统的动静态PHP漏洞挖掘技术效率低、误报率高、漏洞匹配规则过于单一且不具有泛化性的问题,以及现有的以token序列、软件度量等作为特征的神经网络模型不能很好地理解代码语义的问题,提出了一种基于ASTNN深度神经网络的PHP漏洞挖掘方法。首先,根据表达式子树的概念及PHP抽象语法树的特点定义了表达式子树划分规则;其次,根据PHP抽象语法树的特殊结构对传统ASTNN深度神经网络的编码层进行了改进,在提高模型效率的同时更好地保留了抽象语法树所包含的语义信息。最终实验结果表明,基于改进后ASTNN网络的PHP漏洞挖掘方法相对于传统的漏洞挖掘方法具有更高的准确率及召回率。改进后的ASTNN深度神经网络模型适用于PHP语言漏洞挖掘领域。 展开更多
关键词 抽象语法树 深度学习 循环神经网络 漏洞挖掘
下载PDF
基于Clang的AST提取结构体数据库插件的实现 被引量:1
11
作者 张红 《电脑知识与技术》 2017年第2X期19-21,共3页
在嵌入式系统调试环境下,需将大量的结构体变量输出到诊断软件,进行解析与呈现,而结构体数量庞大,且容易变化。在软件快速迭代开发阶段,迫切需要使结构体解析过程自动化。最关键的一步,是实现结构体定义数据库的提取。此文主要研究基于C... 在嵌入式系统调试环境下,需将大量的结构体变量输出到诊断软件,进行解析与呈现,而结构体数量庞大,且容易变化。在软件快速迭代开发阶段,迫切需要使结构体解析过程自动化。最关键的一步,是实现结构体定义数据库的提取。此文主要研究基于Clang编译器,实现从前端编译结构体定义文件生成的抽象语法树中提取结构体定义信息。实验结果表明,该方法能准确的实现从结构体定义文件提取结构体定义XML数据库。 展开更多
关键词 Clang编译器 抽象语法树 信息提取 结构体定义
下载PDF
基于AST的程序静态分析工具的研究与实现
12
作者 陈平 王成耀 《微计算机信息》 北大核心 2007年第24期189-190,120,共3页
本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。
关键词 静态分析 代码检测 抽象语法树
下载PDF
SSA-HIAST: A Novel Framework for Code Clone Detection
13
作者 Neha Saini Sukhdip Singh 《Computers, Materials & Continua》 SCIE EI 2022年第5期2999-3017,共19页
In the recent era of software development,reusing software is one of the major activities that is widely used to save time.To reuse software,the copy and paste method is used and this whole process is known as code cl... In the recent era of software development,reusing software is one of the major activities that is widely used to save time.To reuse software,the copy and paste method is used and this whole process is known as code cloning.This activity leads to problems like difficulty in debugging,increase in time to debug and manage software code.In the literature,various algorithms have been developed to find out the clones but it takes too much time as well as more space to figure out the clones.Unfortunately,most of them are not scalable.This problem has been targeted upon in this paper.In the proposed framework,authors have proposed a new method of identifying clones that takes lesser time to find out clones as compared with many popular code clone detection algorithms.The proposed framework has also addressed one of the key issues in code clone detection i.e.,detection of near-miss(Type-3)and semantic clones(Type-4)with significant accuracy of 95.52%and 92.80%respectively.The present study is divided into two phases,the first method converts any code into an intermediate representation form i.e.,Hashinspired abstract syntax trees.In the second phase,these abstract syntax trees are passed to a novel approach“Similarity-based self-adjusting hash inspired abstract syntax tree”algorithm that helps in knowing the similarity level of codes.The proposed method has shown a lot of improvement over the existing code clones identification methods. 展开更多
关键词 Code cloning clone detection hash inspired abstract syntax tree ROTATIONS hybrid framework
下载PDF
基于词向量模型的漏洞检测方法
14
作者 肖巍 胡景浩 +2 位作者 侯正章 王涛 潘超 《吉林大学学报(理学版)》 CAS 北大核心 2023年第6期1358-1366,共9页
针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层... 针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层的语义关系,代码块内部联系紧密. 展开更多
关键词 词向量模型 漏洞检测 抽象语法树 代码表征 神经网络
下载PDF
基于结构和语义的代码分类以及聚类方法
15
作者 金岩磊 秦冠军 +3 位作者 姜凯 甘迪 史志成 周宇 《计算机应用与软件》 北大核心 2023年第7期1-6,33,共7页
提出一个基于抽象语法树(Abstract Syntax Tree,AST)生成代码向量解决代码分类以及聚类任务的深度学习模型,该模型结合了卷积以及循环神经网络能够同时对AST的结构和语义信息进行提取,在代码分类任务上,分类的准确率与该领域最优的模型... 提出一个基于抽象语法树(Abstract Syntax Tree,AST)生成代码向量解决代码分类以及聚类任务的深度学习模型,该模型结合了卷积以及循环神经网络能够同时对AST的结构和语义信息进行提取,在代码分类任务上,分类的准确率与该领域最优的模型效果十分接近,速度却是其1.55倍。聚类任务上Jaccard系数(Jaccard Coefficient)、FMI(Fowlkes and Mallows Index)指数、ACC准确率分别达到74.4%、75.2%和83.6%,对比当下前沿的深度学习模型占有优势。 展开更多
关键词 抽象语法树 代码理解 代码分类 代码聚类 循环神经网络 卷积神经网络
下载PDF
一种基于多任务学习的代码补全方法 被引量:1
16
作者 帅祥 魏乐 舒红平 《计算机应用研究》 CSCD 北大核心 2023年第3期863-867,共5页
针对基于语言模型的代码补全方法忽略源代码中结构信息和命名信息而导致补全准确率偏低的问题,提出一种基于多任务学习的代码补全方法(multi-task learning code completion, MTLCC)。MTLCC对源代码数据集进行数据清洗和预处理,通过抽... 针对基于语言模型的代码补全方法忽略源代码中结构信息和命名信息而导致补全准确率偏低的问题,提出一种基于多任务学习的代码补全方法(multi-task learning code completion, MTLCC)。MTLCC对源代码数据集进行数据清洗和预处理,通过抽象语法树(abstract syntax tree, AST)提取源代码中的结构信息和命名信息;构建基于Transformer的多任务学习网络,采用软参数共享学习方式分别对源代码的节点类型预测、节点值预测和语句预测进行训练;利用集束搜索对模型推理结果进行后期处理生成代码补全建议列表。实验结果表明,与Pointer network、LSTM+TransformerXL和CodeGPT中最好的模型相比,MTLCC在节点类型预测和节点值预测任务中的准确率分别提升了2.5%和1.7%、MRR分别提升了3.7%和2.4%,在语句预测任务中的ROUGE-L分数(L@4)提升了0.055。 展开更多
关键词 代码补全 多任务学习 抽象语法树 TRANSFORMER 集束搜索
下载PDF
基于抽象语法树裁剪的智能合约漏洞检测研究 被引量:1
17
作者 刘泽润 郑红 邱俊杰 《计算机科学》 CSCD 北大核心 2023年第4期317-322,共6页
随着区块链技术的发展,智能合约在不同领域都得到了广泛的应用,以太坊成为了最大的智能合约平台。同时,频发的智能合约漏洞造成了巨大的经济损失,智能合约漏洞检测成为了研究焦点,而以往的智能合约漏洞检测工具不能很好地利用合约源代... 随着区块链技术的发展,智能合约在不同领域都得到了广泛的应用,以太坊成为了最大的智能合约平台。同时,频发的智能合约漏洞造成了巨大的经济损失,智能合约漏洞检测成为了研究焦点,而以往的智能合约漏洞检测工具不能很好地利用合约源代码的语法信息。针对智能合约的可重入漏洞,首先,提出了一种基于深度学习的漏洞检测工具——SCDefender,以智能合约Solidity源代码的抽象语法树形式作为研究对象,使用基于树的卷积神经网络进行漏洞检测。其次,提出了抽象语法树裁剪算法以去除与漏洞检测任务无关的节点,保留抽象语法树中的关键信息。SCDefender漏洞检测的精确度、召回率和F1值分别为81.43%,92.12%和86.45%,具有较好的漏洞检测效果。消融实验表明,抽象语法树裁剪算法对SCDefender的漏洞检测任务具有重大贡献。 展开更多
关键词 区块链 智能合约 漏洞检测 抽象语法树 深度学习
下载PDF
基于网络度量元的Solidity智能合约缺陷预测
18
作者 李显伟 潘伟丰 +2 位作者 王家乐 潘云 袁成祥 《计算机应用研究》 CSCD 北大核心 2023年第12期3545-3550,共6页
针对现有智能合约缺陷预测方法未考虑合约代码内部结构对缺陷产生的影响的不足,提出了一种基于网络度量元的Solidity智能合约缺陷预测方法。首先,通过Solidity-Antlr4工具构建Solidity智能合约的抽象语法树(abstract syntax tree, AST)... 针对现有智能合约缺陷预测方法未考虑合约代码内部结构对缺陷产生的影响的不足,提出了一种基于网络度量元的Solidity智能合约缺陷预测方法。首先,通过Solidity-Antlr4工具构建Solidity智能合约的抽象语法树(abstract syntax tree, AST);其次,根据抽象语法树构建合约网络,网络中的节点代表函数和属性,边代表函数间的调用关系和函数对属性的操作关系;然后,引入复杂网络领域的知识,构建了一套针对Solidity智能合约的网络度量元;最后,基于多种回归模型和分类模型构建智能合约缺陷预测模型,进而比较不同类型的度量元在Solidity智能合约缺陷预测方面的性能。数据实验表明,结合了网络度量元的缺陷预测模型的预测性能比相应没有结合网络度量元的模型要好。 展开更多
关键词 智能合约 软件缺陷预测 网络度量元集 SOLIDITY 抽象语法树
下载PDF
基于Transformer和卷积神经网络的代码克隆检测
19
作者 贲可荣 杨佳辉 +1 位作者 张献 赵翀 《郑州大学学报(工学版)》 CAS 北大核心 2023年第6期12-18,共7页
基于深度学习的代码克隆检测方法往往作用在代码解析的词序列上或是整棵抽象语法树上,使用基于循环神经网络的时间序列模型提取特征,这会遗漏源代码的重要语法语义信息并诱发梯度消失。针对这一问题,提出一种基于Transformer和卷积神经... 基于深度学习的代码克隆检测方法往往作用在代码解析的词序列上或是整棵抽象语法树上,使用基于循环神经网络的时间序列模型提取特征,这会遗漏源代码的重要语法语义信息并诱发梯度消失。针对这一问题,提出一种基于Transformer和卷积神经网络的代码克隆检测方法(TCCCD)。首先,TCCCD将源代码表示成抽象语法树,并将抽象语法树切割成语句子树输入给神经网络,其中,语句子树由先序遍历得到的语句结点序列构成,蕴含了代码的结构和层次化信息。其次,在神经网络设计方面,TCCCD使用Transformer的Encoder部分提取代码的全局信息,再利用卷积神经网络捕获代码的局部信息。再次,融合2个不同网络提取出的特征,学习得到蕴含词法、语法和结构信息的代码向量表示。最后,采用两段代码向量的欧氏距离表征语义关联程度,训练一个分类器检测代码克隆。实验结果表明:在OJClone数据集上,精度、召回率、F 1值分别能达到98.9%、98.1%和98.5%;在BigCloneBench数据集上,精度、召回率、F 1值分别能达到99.1%、91.5%和94.2%。与其他方法对比,精度、召回率、F 1值均有提升,所提方法能够有效检测代码克隆。 展开更多
关键词 代码克隆检测 抽象语法树(ast) TRANSFORMER 卷积神经网络 代码特征提取
下载PDF
基于神经网络和信息检索的源代码注释生成
20
作者 沈鑫 周宇 《计算机系统应用》 2023年第7期1-10,共10页
源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器... 源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器-解码器的神经网络模型生成代码段的摘要.现有的注释生成方法主要存在两个问题:一方面,基于神经网络的方法对于代码段中出现的高频词更加友好,但是往往会弱化低频词的处理;另一方面,编程语言是高度结构化的,所以不能简单地将源代码作为序列化文本处理,容易造成上下文结构信息丢失.因此,本文为了解决低频词问题提出了基于检索的神经机器翻译方法,使用训练集中检索到的相似代码段来增强神经网络模型;为了学习代码段的结构化语义信息,本文提出结构化引导的Transformer,该模型通过注意力机制将代码结构信息进行编码.经过实验,结果证明该模型在低频词和结构化语义的处理上对比当下前沿的代码注释生成的深度学习模型具有显著的优势. 展开更多
关键词 代码注释生成 抽象语法树 TRANSFORMER 语义相似度 自注意力机制 程序理解
下载PDF
上一页 1 2 9 下一页 到第
使用帮助 返回顶部