期刊文献+
共找到211篇文章
< 1 2 11 >
每页显示 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
编译型嵌入式Python的设计与实现
2
作者 李春亭 王宜怀 +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
基于依赖增强的分层抽象语法树的代码克隆检测
3
作者 万泽轩 谢春丽 +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
位置结构导向的多模态代码摘要生成方法
4
作者 张学君 侯霞 《北京信息科技大学学报(自然科学版)》 2024年第2期43-49,共7页
针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未... 针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未登录词问题,并通过四元组的形式保留抽象语法树的结构信息。这样的组合使得模型在处理源代码时不仅能够全面地捕捉代码的语义特征,还能够准确地学习到代码的语法结构。在真实Java数据集上的实验结果表明,该模型在BLEU、METEOR和ROUGE指标上均优于基线模型,从而验证了其在生成更准确代码摘要方面的有效性。 展开更多
关键词 自动代码摘要 字节对编码 抽象语法树 TRANSFORMER
下载PDF
基于词向量模型的漏洞检测方法
5
作者 肖巍 胡景浩 +2 位作者 侯正章 王涛 潘超 《吉林大学学报(理学版)》 CAS 北大核心 2023年第6期1358-1366,共9页
针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层... 针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层的语义关系,代码块内部联系紧密. 展开更多
关键词 词向量模型 漏洞检测 抽象语法树 代码表征 神经网络
下载PDF
基于结构和语义的代码分类以及聚类方法
6
作者 金岩磊 秦冠军 +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
Bug localization based on syntactical and semantic information of source code
7
作者 YAN Xuefeng CHENG Shasha GUO Liqin 《Journal of Systems Engineering and Electronics》 SCIE EI CSCD 2023年第1期236-246,共11页
The existing software bug localization models treat the source file as natural language, which leads to the loss of syntactical and structure information of the source file. A bug localization model based on syntactic... The existing software bug localization models treat the source file as natural language, which leads to the loss of syntactical and structure information of the source file. A bug localization model based on syntactical and semantic information of source code is proposed. Firstly, abstract syntax tree(AST) is divided based on node category to obtain statement sequence. The statement tree is encoded into vectors to capture lexical and syntactical knowledge at the statement level.Secondly, the source code is transformed into vector representation by the sequence naturalness of the statement. Therefore,the problem of gradient vanishing and explosion caused by a large AST size is obviated when using AST to the represent source code. Finally, the correlation between bug reports and source files are comprehensively analyzed from three aspects of syntax, semantics and text to locate the buggy code. Experiments show that compared with other standard models, the proposed model improves the performance of bug localization, and it has good advantages in mean reciprocal rank(MRR), mean average precision(MAP) and Top N Rank. 展开更多
关键词 bug report abstract syntax tree code representation software bug localization
下载PDF
一种基于多任务学习的代码补全方法 被引量:1
8
作者 帅祥 魏乐 舒红平 《计算机应用研究》 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
9
作者 刘泽润 郑红 邱俊杰 《计算机科学》 CSCD 北大核心 2023年第4期317-322,共6页
随着区块链技术的发展,智能合约在不同领域都得到了广泛的应用,以太坊成为了最大的智能合约平台。同时,频发的智能合约漏洞造成了巨大的经济损失,智能合约漏洞检测成为了研究焦点,而以往的智能合约漏洞检测工具不能很好地利用合约源代... 随着区块链技术的发展,智能合约在不同领域都得到了广泛的应用,以太坊成为了最大的智能合约平台。同时,频发的智能合约漏洞造成了巨大的经济损失,智能合约漏洞检测成为了研究焦点,而以往的智能合约漏洞检测工具不能很好地利用合约源代码的语法信息。针对智能合约的可重入漏洞,首先,提出了一种基于深度学习的漏洞检测工具——SCDefender,以智能合约Solidity源代码的抽象语法树形式作为研究对象,使用基于树的卷积神经网络进行漏洞检测。其次,提出了抽象语法树裁剪算法以去除与漏洞检测任务无关的节点,保留抽象语法树中的关键信息。SCDefender漏洞检测的精确度、召回率和F1值分别为81.43%,92.12%和86.45%,具有较好的漏洞检测效果。消融实验表明,抽象语法树裁剪算法对SCDefender的漏洞检测任务具有重大贡献。 展开更多
关键词 区块链 智能合约 漏洞检测 抽象语法树 深度学习
下载PDF
基于网络度量元的Solidity智能合约缺陷预测
10
作者 李显伟 潘伟丰 +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
融合语法和语义的代码注释生成方法
11
作者 王瀚森 王婷 +1 位作者 陈铁明 季白杨 《小型微型计算机系统》 CSCD 北大核心 2023年第11期2457-2463,共7页
代码注释生成技术通过分析源代码的语法和语义生成对应的自然语言描述,可以帮助开发人员理解代码,在软件开发和维护过程中起到重要作用.本文提出了一种基于Transformer的代码注释生成方法,可以同时学习源代码的语法结构特征和顺序语义特... 代码注释生成技术通过分析源代码的语法和语义生成对应的自然语言描述,可以帮助开发人员理解代码,在软件开发和维护过程中起到重要作用.本文提出了一种基于Transformer的代码注释生成方法,可以同时学习源代码的语法结构特征和顺序语义特征.具体而言,将简化的抽象语法树(Abstract Syntax Tree,AST)通过多路树-LSTM建模,捕获树形语法结构编码,在Transformer中融合语法结构信息和顺序语义信息.实验结果表明,本文方法生成的注释质量优于其他基线方法. 展开更多
关键词 代码注释生成 抽象语法树 神经机器翻译 TRANSFORMER 编码器-解码器
下载PDF
基于配置语句树的网络设备配置异常检测算法
12
作者 沈袁程 班瑞 +2 位作者 陈昕 华润多 汪云海 《计算机科学》 CSCD 北大核心 2023年第S02期614-623,共10页
随着网络通信设备的发展,设备配置异常引发的问题日益显著。传统的检测工具通常只针对拼写、格式等进行检测,无法检测逻辑问题。因此,目前的配置异常检测工作高度依赖工程师经验。为了提高网络服务质量并减少工程师的重复工作,以及解决... 随着网络通信设备的发展,设备配置异常引发的问题日益显著。传统的检测工具通常只针对拼写、格式等进行检测,无法检测逻辑问题。因此,目前的配置异常检测工作高度依赖工程师经验。为了提高网络服务质量并减少工程师的重复工作,以及解决传统工具检测速度慢、检测能力弱、通用性差等问题,文中借鉴了抽象语法树的设计理念,创新性地提出了一种基于“配置语句树”的无监督异常检测算法。通过统计分析,该算法可以确定7种可检测异常类型,并支持异常定位和异常修改方案的推荐。文中采用运营商现网运营中的配置,根据算法可检测种类、运行时间、准确率和召回率这几个指标进行量化评估和对比分析。实验结果表明,该算法具有良好的鲁棒性,完全能够有效应对网络设备配置异常引发的网络通信问题。 展开更多
关键词 异常检测 聚类分析 设备自动巡检 抽象语法树 共现语料分析 无监督学习 关联分析
下载PDF
基于源码语义结构分析的智能合约漏洞检测方法
13
作者 李珊 王斌 王伟 《广州大学学报(自然科学版)》 CAS 2023年第4期56-65,共10页
近年来,智能合约已广泛应用于去中心化金融、供应链管理等领域。然而,智能合约漏洞给这些领域造成了严重的损失,由于智能合约部署在区块链上以后无法修改,开发人员写好智能合约后必须检测其安全性。现有的基于深度学习的检测方法大多使... 近年来,智能合约已广泛应用于去中心化金融、供应链管理等领域。然而,智能合约漏洞给这些领域造成了严重的损失,由于智能合约部署在区块链上以后无法修改,开发人员写好智能合约后必须检测其安全性。现有的基于深度学习的检测方法大多使用字节码和源码,然而,基于字节码的检测方法无法定位到漏洞可能出现的位置且直接检测向量化源码准确率低。为了提高漏洞检测的准确率,增加检测结果的可解释性,文章提出了基于源码语义结构分析的智能合约漏洞检测方法。首先,将智能合约源代码转化为抽象语法树,研究源代码和抽象语法树的语法关系;其次,通过对以太坊中合约的抽象语法树属性特征和漏洞特性进行分析,发现5种漏洞相关属性特征,并围绕这些节点特征将抽象语法树进行切片,得到与漏洞特性相关的子树切片;最后,提取子树切片的结构特征和属性特征,并将其表示为图结构。使用具有更好图表示能力的图同构网络模型检测子树切片的图结构并利用33812个以太坊上的智能合约进行实验,实验结果表明,文章所提出的方法有效性显著高于其他方法,Macro-F1超过90%,未检查返回值和重入这两种漏洞的F1-score分别达到97%和92%。 展开更多
关键词 区块链 智能合约 抽象语法树 图同构网络
下载PDF
一种基于神经网络的代码嵌入方法
14
作者 孙雪凯 蒋烈辉 《计算机科学》 CSCD 北大核心 2023年第5期64-71,共8页
对代码进行分析研究具有很多的应用场景,例如代码抄袭检测、软件漏洞搜索等。随着人工智能的发展,神经网络技术被广泛应用于代码分析和研究。然而,现有的方法要么简单地将代码视为普通的自然语言处理,要么使用太过复杂的规则对代码进行... 对代码进行分析研究具有很多的应用场景,例如代码抄袭检测、软件漏洞搜索等。随着人工智能的发展,神经网络技术被广泛应用于代码分析和研究。然而,现有的方法要么简单地将代码视为普通的自然语言处理,要么使用太过复杂的规则对代码进行采样,前者的处理方式容易造成代码关键信息的丢失,而后者会造成算法过于复杂,模型的训练需要花费较长的时间。Alon等提出了一种名为Code2vec的算法,该算法采用了一种简单且有效的代码表示方法,相比之前的代码分析方法有着显著的优势,但Code2vec算法仍存在一些局限性。因此,在其基础上提出了一种基于神经网络的代码嵌入方法,该方法的主要思想是将代码函数表示为代码的嵌入向量。首先将一个代码函数分解为一系列抽象语法树路径,然后通过神经网络去学习如何表示每一条路径,最后将所有路径聚合成一个嵌入向量来表示当前的代码函数。文中实现了一个基于该方法的原型系统,实验结果表明,相比Code2vec,所提算法的结构更加简单、训练速度更快。 展开更多
关键词 神经网络 代码嵌入 代码分析 抽象语法树 代码分类
下载PDF
软件缺陷预测模型可解释性对比 被引量:1
15
作者 李汇来 杨斌 +1 位作者 于秀丽 唐晓梅 《计算机科学》 CSCD 北大核心 2023年第5期21-30,共10页
软件缺陷预测已经成为软件测试中的重要研究方向,缺陷预测的全面与否直接影响着测试效率和程序运行。但现有的缺陷预测是根据历史数据进行推断,大多不能对预测过程给出合理的解释,这种黑盒的预测过程仅仅展现输出结果,使得人们难以得知... 软件缺陷预测已经成为软件测试中的重要研究方向,缺陷预测的全面与否直接影响着测试效率和程序运行。但现有的缺陷预测是根据历史数据进行推断,大多不能对预测过程给出合理的解释,这种黑盒的预测过程仅仅展现输出结果,使得人们难以得知测试模型内部结构对输出的影响。为解决这一问题,需挑选软件度量方法和部分典型深度学习模型,对其输入、输出及结构进行简要对比,从数据差异程度和模型对代码的处理过程两个角度进行分析,对它们的异同给出解释。实验表明,采用深度学习的方法进行缺陷预测比传统软件度量方法更加有效,这主要是由它们对原始数据处理过程不同造成的;采用卷积神经网络和长短期记忆神经网络做缺陷预测时,数据差异主要由对代码信息理解的完整程度不同造成的。综上可知,要提高对软件缺陷的预测能力,模型的计算应该对代码的语义、逻辑和上下文联系进行全面的介入,避免有用信息被遗漏。 展开更多
关键词 软件缺陷预测 可解释性 软件度量 神经网络 抽象语法树
下载PDF
一种基于MAAT两步匹配的架构多层次变更检测方法
16
作者 王桐 李必信 王东东 《电子学报》 EI CAS CSCD 北大核心 2023年第3期694-700,共7页
掌握软件架构的变更对软件的持续演进具有十分重要的作用,然而目前的变更检测方法主要关注于细粒度的代码变更,忽略了对架构层级的检测.为了检测架构层级的变更,本文提出一种基于MAAT(Multilevel Architecture Analysis Tree)两步匹配... 掌握软件架构的变更对软件的持续演进具有十分重要的作用,然而目前的变更检测方法主要关注于细粒度的代码变更,忽略了对架构层级的检测.为了检测架构层级的变更,本文提出一种基于MAAT(Multilevel Architecture Analysis Tree)两步匹配的架构多层次变更检测方法.该方法包括三个步骤,分别是:构造MAAT;基于两个MAAT实施两步匹配算法检测变更;对变更进行分类和聚类.基于以上算法,我们开发了工具ACAnalyzer.实验结果证明,ACAnalyzer具有较好的准确性和性能. 展开更多
关键词 软件架构 变更检测 抽象语法树 软件演进 两步匹配
下载PDF
基于Transformer和卷积神经网络的代码克隆检测
17
作者 贲可荣 杨佳辉 +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
基于神经网络和信息检索的源代码注释生成
18
作者 沈鑫 周宇 《计算机系统应用》 2023年第7期1-10,共10页
源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器... 源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器-解码器的神经网络模型生成代码段的摘要.现有的注释生成方法主要存在两个问题:一方面,基于神经网络的方法对于代码段中出现的高频词更加友好,但是往往会弱化低频词的处理;另一方面,编程语言是高度结构化的,所以不能简单地将源代码作为序列化文本处理,容易造成上下文结构信息丢失.因此,本文为了解决低频词问题提出了基于检索的神经机器翻译方法,使用训练集中检索到的相似代码段来增强神经网络模型;为了学习代码段的结构化语义信息,本文提出结构化引导的Transformer,该模型通过注意力机制将代码结构信息进行编码.经过实验,结果证明该模型在低频词和结构化语义的处理上对比当下前沿的代码注释生成的深度学习模型具有显著的优势. 展开更多
关键词 代码注释生成 抽象语法树 TRANSFORMER 语义相似度 自注意力机制 程序理解
下载PDF
基于抽象语法树和图匹配网络的代码作者身份识别
19
作者 郭迪骁 周安民 +1 位作者 刘亮 张磊 《四川大学学报(自然科学版)》 CAS CSCD 北大核心 2023年第6期107-115,共9页
源代码作者身份识别有助于解决恶意代码攻击溯源、代码剽窃、软件侵权等问题,本文提出一种新的基于图匹配网络和抽象语法树的源代码作者身份识别方法.首先,通过删除注释、统一换行符、制表符预处理源代码,消除不同集成开发环境和代码布... 源代码作者身份识别有助于解决恶意代码攻击溯源、代码剽窃、软件侵权等问题,本文提出一种新的基于图匹配网络和抽象语法树的源代码作者身份识别方法.首先,通过删除注释、统一换行符、制表符预处理源代码,消除不同集成开发环境和代码布局的影响;然后,基于数据增强抽象语法树将源代码转换为树结构,添加不同类型的边构建代码特征图,不仅关注语法和句法特征,还提取了代码中数据流和控制流特征;接着使用特征图训练图匹配神经网络,生成源代码的图嵌入特征向量;最后,使用孪生神经网络对输出的两个图嵌入特征向量进行计算,识别源代码作者身份.实验结果表明,本文的方法在包含1000位程序员的Google Code Jam数据集上达到了95.60%的准确率,与现有的源代码作者身份识别方法相比,提高了准确率和扩展性. 展开更多
关键词 代码样式 去匿名化 抽象语法树 图神经网络 孪生神经网络
下载PDF
基于增强AST的图神经网络函数级代码漏洞检测方法
20
作者 顾守珂 陈文 《计算机科学》 CSCD 北大核心 2023年第6期283-290,共8页
软件漏洞逐年递增,安全问题愈发严重。在软件项目的交付阶段对原始代码进行漏洞检测可以有效避免后期运行时的安全漏洞,而代码漏洞检测依赖于有效的代码表征。传统的基于软件度量的表征方法与漏洞关联性较弱,难以对漏洞信息进行有效表... 软件漏洞逐年递增,安全问题愈发严重。在软件项目的交付阶段对原始代码进行漏洞检测可以有效避免后期运行时的安全漏洞,而代码漏洞检测依赖于有效的代码表征。传统的基于软件度量的表征方法与漏洞关联性较弱,难以对漏洞信息进行有效表征。近年来,机器学习为漏洞的智能化发现提供了新的思路,但该方法同样可能遗漏关键的代码特征信息。针对以上问题,文中在传统抽象语法树(AST)上增加控制依赖、数据依赖和语句序列边生成增强抽象语法树(EXAST)图结构,对原始代码进行表征以更好地处理代码结构化信息,并采用词向量嵌入算法(Word2Vec)将代码信息初始化为机器能够识别和学习的数值向量。同时,在传统的图神经网络(GNN)中引入门控循环单元(GRU),构建图识别模型,以缓解梯度消失并加强图结构中长期信息的传播,从而增强了代码执行的时序关系,提高了漏洞检测的准确度。最后在SARD公开数据集上对模型进行对比测试,实现了函数粒度的代码漏洞检测,相比传统的漏洞检测方法,准确率和F1分值分别最大提高了32.54%和44.99,实验结果证明了所提方法对代码漏洞检测的有效性。 展开更多
关键词 漏洞挖掘 图神经网络 深度学习 抽象语法树 门控循环单元
下载PDF
上一页 1 2 11 下一页 到第
使用帮助 返回顶部