期刊文献+
共找到215篇文章
< 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的设计与实现 被引量:1
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
作者 杨馨悦 刘安 +2 位作者 赵雷 陈林 章晓芳 《软件学报》 EI CSCD 北大核心 2024年第8期3824-3842,共19页
软件变更预测旨在识别出具有变更倾向的模块,可以帮助软件管理者和开发人员有效地分配资源,降低维护开销.从代码中提取有效的特征在构建准确的预测模型中起着重要作用.近年来,研究人员从利用传统的手工特征进行预测转向具有强大表示能... 软件变更预测旨在识别出具有变更倾向的模块,可以帮助软件管理者和开发人员有效地分配资源,降低维护开销.从代码中提取有效的特征在构建准确的预测模型中起着重要作用.近年来,研究人员从利用传统的手工特征进行预测转向具有强大表示能力的语义特征,他们从抽象语法树(abstract syntax tree,AST)的节点序列中提取语义特征构建模型.但已有研究忽略了AST的结构信息以及代码中丰富的语义信息,如何提取代码的语义特征仍然是一个具有挑战性的问题.为此,提出一种基于混合图表示的变更预测方法.该模型首先结合AST、控制流图(control flow graph,CFG)、数据流图(data flow graph,DFG)等结构信息构建代码的程序图表示,接着利用图神经网络学习出程序图的语义特征,根据该特征预测变更倾向性.所提模型能够融合各种语义信息以更好地表征代码.在多组变更数据集上开展与最新变更预测方法的对比实验,验证了所提方法的有效性. 展开更多
关键词 软件变更预测 图神经网络 AST 控制流图 数据流图
下载PDF
基于CB-Attention的JavaScript恶意混淆代码检测方法
4
作者 徐鑫 张志宁 +2 位作者 吕云山 李立 郑玉杰 《计算机工程与设计》 北大核心 2024年第8期2298-2305,共8页
当今JavaScript代码混淆方法日益多样,现有检测方法在对混淆代检测时会出现漏报和误报的情况,为解决该问题,提出一种基于CB-Attention的JavaScript恶意代码检测方法。由SDPCNN模型和BiLSTM+Attention模型构成,SDPCNN对短距离间的语义特... 当今JavaScript代码混淆方法日益多样,现有检测方法在对混淆代检测时会出现漏报和误报的情况,为解决该问题,提出一种基于CB-Attention的JavaScript恶意代码检测方法。由SDPCNN模型和BiLSTM+Attention模型构成,SDPCNN对短距离间的语义特征信息进行提取,BiLSTM+Attention获取JavaScript代码中长距离间的语义信息特征。为验证所提方法的有效性,将该方法与其它方法进行对比,对比结果表明,该方法具有较好的检测效果,F1-Score可达98.78%。 展开更多
关键词 JavaScript恶意代码 混淆代码 检测模型 增强深度金字塔卷积神经网络 注意力网络 双向长短时记忆网络 长距离特征信息 抽象语法树
下载PDF
基于对比学习的跨语言代码克隆检测方法
5
作者 吕泉润 谢春丽 +1 位作者 万泽轩 魏家劲 《计算机应用研究》 CSCD 北大核心 2024年第7期2147-2152,共6页
代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(abstract syntax tree,AST)的单语言克隆检测已经取得了较为显著的效果,但跨语言代码的AST节点存在同义词、近义词且手工标注数据集成本高等问题,限制了... 代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(abstract syntax tree,AST)的单语言克隆检测已经取得了较为显著的效果,但跨语言代码的AST节点存在同义词、近义词且手工标注数据集成本高等问题,限制了现有克隆检测方法的有效性和实用性。针对上述问题,提出一种基于对比学习的树卷积神经网络(contrastive tree convolutional neuraln etwork,CTCNN)的跨语言代码克隆检测方法。该方法首先将不同编程语言的代码解析为AST,并对AST的节点类型和节点值作同义词转换处理,以降低不同编程语言AST之间的差异;同时,采用对比学习扩充负样本并对模型进行训练,使得在小样本数据集下能够最小化克隆对之间的距离,最大化非克隆对之间的距离。最后在公开数据集上进行了评测,精确度达到95.26%、召回率为99.98%、F_(1)为97.56%。结果表明,相较于现有的最好的CLCDSA和C4方法,该模型的检测精度分别提高了432%和3.73%,其F_(1)值分别提升了29.84%和6.29%,证明了所提模型是一种有效的跨语言代码克隆检测方法。 展开更多
关键词 跨语言 代码克隆 对比学习 抽象语法树
下载PDF
基于依赖增强的分层抽象语法树的代码克隆检测
6
作者 万泽轩 谢春丽 +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
位置结构导向的多模态代码摘要生成方法
7
作者 张学君 侯霞 《北京信息科技大学学报(自然科学版)》 2024年第2期43-49,共7页
针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未... 针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未登录词问题,并通过四元组的形式保留抽象语法树的结构信息。这样的组合使得模型在处理源代码时不仅能够全面地捕捉代码的语义特征,还能够准确地学习到代码的语法结构。在真实Java数据集上的实验结果表明,该模型在BLEU、METEOR和ROUGE指标上均优于基线模型,从而验证了其在生成更准确代码摘要方面的有效性。 展开更多
关键词 自动代码摘要 字节对编码 抽象语法树 TRANSFORMER
下载PDF
基于抽象语法树特征迁移的软件漏洞检测方法(AST-FMVD)
8
作者 李子俊 李涛 +6 位作者 陈浩东 余琴 乔梦晴 李琳 王颉 万振华 宋荆汉 《计算机技术与发展》 2024年第6期81-88,共8页
深度学习在漏洞检测的应用取得了显著的进展。现有漏洞检测算法需要大量的标记数据,通过有监督的方法构建检测模型,在多语言环境中,由于语言的多样性和标记训练样本的缺乏,检测模型可能存在泛化性问题,特别是在小样本领域中可能表现不... 深度学习在漏洞检测的应用取得了显著的进展。现有漏洞检测算法需要大量的标记数据,通过有监督的方法构建检测模型,在多语言环境中,由于语言的多样性和标记训练样本的缺乏,检测模型可能存在泛化性问题,特别是在小样本领域中可能表现不佳。为了解决这一困境,迁移学习可以作为一种解决方案,迁移学习的核心思想是以“举一反三”为核心的算法框架,将某个领域的知识迁移到另一个领域的学习中,从而打破样本数据的制约。该文提出了一种基于特征迁移的漏洞检测方法。通过语义相似性对代码的语法树节点信息进行聚类,可以快速并准确地构建好不同语言之间的节点映射关系,同时在语法树的映射过程中引入上下文感知技术帮助解决歧义或模糊的语法结构,提高解析性能。该方法实现检测样本从未知领域变换到已知领域,利用在原有领域构建的深度学习模型,可以将新领域任务迁移到已知领域,最终解决跨域的知识迁移的应用,并将该方法取名为AST-FMVD。最后通过Java的漏洞检测模型对含有特定漏洞文件的进行检测,实现模型在Python领域中的迁移应用,证明了AST-FMVD的可行性,并通过实验证明AST-FMVD可以实现源域中的训练模型在目标领域仍可以保证原模型良好的检测水平。 展开更多
关键词 深度学习 迁移学习 零样本 漏洞检测 抽象语法树
下载PDF
基于结构和语义的代码分类以及聚类方法 被引量:1
9
作者 金岩磊 秦冠军 +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
基于词向量模型的漏洞检测方法
10
作者 肖巍 胡景浩 +2 位作者 侯正章 王涛 潘超 《吉林大学学报(理学版)》 CAS 北大核心 2023年第6期1358-1366,共9页
针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层... 针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层的语义关系,代码块内部联系紧密. 展开更多
关键词 词向量模型 漏洞检测 抽象语法树 代码表征 神经网络
下载PDF
Bug localization based on syntactical and semantic information of source code
11
作者 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
12
作者 帅祥 魏乐 舒红平 《计算机应用研究》 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
13
作者 王瀚森 王婷 +1 位作者 陈铁明 季白杨 《小型微型计算机系统》 CSCD 北大核心 2023年第11期2457-2463,共7页
代码注释生成技术通过分析源代码的语法和语义生成对应的自然语言描述,可以帮助开发人员理解代码,在软件开发和维护过程中起到重要作用.本文提出了一种基于Transformer的代码注释生成方法,可以同时学习源代码的语法结构特征和顺序语义特... 代码注释生成技术通过分析源代码的语法和语义生成对应的自然语言描述,可以帮助开发人员理解代码,在软件开发和维护过程中起到重要作用.本文提出了一种基于Transformer的代码注释生成方法,可以同时学习源代码的语法结构特征和顺序语义特征.具体而言,将简化的抽象语法树(Abstract Syntax Tree,AST)通过多路树-LSTM建模,捕获树形语法结构编码,在Transformer中融合语法结构信息和顺序语义信息.实验结果表明,本文方法生成的注释质量优于其他基线方法. 展开更多
关键词 代码注释生成 抽象语法树 神经机器翻译 TRANSFORMER 编码器-解码器
下载PDF
基于配置语句树的网络设备配置异常检测算法 被引量:1
14
作者 沈袁程 班瑞 +2 位作者 陈昕 华润多 汪云海 《计算机科学》 CSCD 北大核心 2023年第S02期614-623,共10页
随着网络通信设备的发展,设备配置异常引发的问题日益显著。传统的检测工具通常只针对拼写、格式等进行检测,无法检测逻辑问题。因此,目前的配置异常检测工作高度依赖工程师经验。为了提高网络服务质量并减少工程师的重复工作,以及解决... 随着网络通信设备的发展,设备配置异常引发的问题日益显著。传统的检测工具通常只针对拼写、格式等进行检测,无法检测逻辑问题。因此,目前的配置异常检测工作高度依赖工程师经验。为了提高网络服务质量并减少工程师的重复工作,以及解决传统工具检测速度慢、检测能力弱、通用性差等问题,文中借鉴了抽象语法树的设计理念,创新性地提出了一种基于“配置语句树”的无监督异常检测算法。通过统计分析,该算法可以确定7种可检测异常类型,并支持异常定位和异常修改方案的推荐。文中采用运营商现网运营中的配置,根据算法可检测种类、运行时间、准确率和召回率这几个指标进行量化评估和对比分析。实验结果表明,该算法具有良好的鲁棒性,完全能够有效应对网络设备配置异常引发的网络通信问题。 展开更多
关键词 异常检测 聚类分析 设备自动巡检 抽象语法树 共现语料分析 无监督学习 关联分析
下载PDF
基于源码语义结构分析的智能合约漏洞检测方法 被引量:1
15
作者 李珊 王斌 王伟 《广州大学学报(自然科学版)》 CAS 2023年第4期56-65,共10页
近年来,智能合约已广泛应用于去中心化金融、供应链管理等领域。然而,智能合约漏洞给这些领域造成了严重的损失,由于智能合约部署在区块链上以后无法修改,开发人员写好智能合约后必须检测其安全性。现有的基于深度学习的检测方法大多使... 近年来,智能合约已广泛应用于去中心化金融、供应链管理等领域。然而,智能合约漏洞给这些领域造成了严重的损失,由于智能合约部署在区块链上以后无法修改,开发人员写好智能合约后必须检测其安全性。现有的基于深度学习的检测方法大多使用字节码和源码,然而,基于字节码的检测方法无法定位到漏洞可能出现的位置且直接检测向量化源码准确率低。为了提高漏洞检测的准确率,增加检测结果的可解释性,文章提出了基于源码语义结构分析的智能合约漏洞检测方法。首先,将智能合约源代码转化为抽象语法树,研究源代码和抽象语法树的语法关系;其次,通过对以太坊中合约的抽象语法树属性特征和漏洞特性进行分析,发现5种漏洞相关属性特征,并围绕这些节点特征将抽象语法树进行切片,得到与漏洞特性相关的子树切片;最后,提取子树切片的结构特征和属性特征,并将其表示为图结构。使用具有更好图表示能力的图同构网络模型检测子树切片的图结构并利用33812个以太坊上的智能合约进行实验,实验结果表明,文章所提出的方法有效性显著高于其他方法,Macro-F1超过90%,未检查返回值和重入这两种漏洞的F1-score分别达到97%和92%。 展开更多
关键词 区块链 智能合约 抽象语法树 图同构网络
下载PDF
基于抽象语法树裁剪的智能合约漏洞检测研究 被引量:1
16
作者 刘泽润 郑红 邱俊杰 《计算机科学》 CSCD 北大核心 2023年第4期317-322,共6页
随着区块链技术的发展,智能合约在不同领域都得到了广泛的应用,以太坊成为了最大的智能合约平台。同时,频发的智能合约漏洞造成了巨大的经济损失,智能合约漏洞检测成为了研究焦点,而以往的智能合约漏洞检测工具不能很好地利用合约源代... 随着区块链技术的发展,智能合约在不同领域都得到了广泛的应用,以太坊成为了最大的智能合约平台。同时,频发的智能合约漏洞造成了巨大的经济损失,智能合约漏洞检测成为了研究焦点,而以往的智能合约漏洞检测工具不能很好地利用合约源代码的语法信息。针对智能合约的可重入漏洞,首先,提出了一种基于深度学习的漏洞检测工具——SCDefender,以智能合约Solidity源代码的抽象语法树形式作为研究对象,使用基于树的卷积神经网络进行漏洞检测。其次,提出了抽象语法树裁剪算法以去除与漏洞检测任务无关的节点,保留抽象语法树中的关键信息。SCDefender漏洞检测的精确度、召回率和F1值分别为81.43%,92.12%和86.45%,具有较好的漏洞检测效果。消融实验表明,抽象语法树裁剪算法对SCDefender的漏洞检测任务具有重大贡献。 展开更多
关键词 区块链 智能合约 漏洞检测 抽象语法树 深度学习
下载PDF
基于Transformer和卷积神经网络的代码克隆检测 被引量:1
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
基于神经网络和信息检索的源代码注释生成 被引量:1
18
作者 沈鑫 周宇 《计算机系统应用》 2023年第7期1-10,共10页
源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器... 源代码注释生成旨在为源代码生成精确的自然语言注释,帮助开发者更好地理解和维护源代码.传统的研究方法利用信息检索技术来生成源代码摘要,从初始源代码选择相应的词或者改写相似代码段的摘要;最近的研究采用机器翻译的方法,选择编码器-解码器的神经网络模型生成代码段的摘要.现有的注释生成方法主要存在两个问题:一方面,基于神经网络的方法对于代码段中出现的高频词更加友好,但是往往会弱化低频词的处理;另一方面,编程语言是高度结构化的,所以不能简单地将源代码作为序列化文本处理,容易造成上下文结构信息丢失.因此,本文为了解决低频词问题提出了基于检索的神经机器翻译方法,使用训练集中检索到的相似代码段来增强神经网络模型;为了学习代码段的结构化语义信息,本文提出结构化引导的Transformer,该模型通过注意力机制将代码结构信息进行编码.经过实验,结果证明该模型在低频词和结构化语义的处理上对比当下前沿的代码注释生成的深度学习模型具有显著的优势. 展开更多
关键词 代码注释生成 抽象语法树 TRANSFORMER 语义相似度 自注意力机制 程序理解
下载PDF
基于网络度量元的Solidity智能合约缺陷预测
19
作者 李显伟 潘伟丰 +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
软件缺陷预测模型可解释性对比 被引量:4
20
作者 李汇来 杨斌 +1 位作者 于秀丽 唐晓梅 《计算机科学》 CSCD 北大核心 2023年第5期21-30,共10页
软件缺陷预测已经成为软件测试中的重要研究方向,缺陷预测的全面与否直接影响着测试效率和程序运行。但现有的缺陷预测是根据历史数据进行推断,大多不能对预测过程给出合理的解释,这种黑盒的预测过程仅仅展现输出结果,使得人们难以得知... 软件缺陷预测已经成为软件测试中的重要研究方向,缺陷预测的全面与否直接影响着测试效率和程序运行。但现有的缺陷预测是根据历史数据进行推断,大多不能对预测过程给出合理的解释,这种黑盒的预测过程仅仅展现输出结果,使得人们难以得知测试模型内部结构对输出的影响。为解决这一问题,需挑选软件度量方法和部分典型深度学习模型,对其输入、输出及结构进行简要对比,从数据差异程度和模型对代码的处理过程两个角度进行分析,对它们的异同给出解释。实验表明,采用深度学习的方法进行缺陷预测比传统软件度量方法更加有效,这主要是由它们对原始数据处理过程不同造成的;采用卷积神经网络和长短期记忆神经网络做缺陷预测时,数据差异主要由对代码信息理解的完整程度不同造成的。综上可知,要提高对软件缺陷的预测能力,模型的计算应该对代码的语义、逻辑和上下文联系进行全面的介入,避免有用信息被遗漏。 展开更多
关键词 软件缺陷预测 可解释性 软件度量 神经网络 抽象语法树
下载PDF
上一页 1 2 11 下一页 到第
使用帮助 返回顶部