期刊文献+
共找到5篇文章
< 1 >
每页显示 20 50 100
代码特征自动提取方法 被引量:7
1
作者 史志成 周宇 《计算机科学与探索》 CSCD 北大核心 2021年第3期456-467,共12页
神经网络在软件工程中的应用极大程度上缓解了传统的人工提取代码特征的压力。已有的研究往往将代码简化为自然语言或者依赖专家的领域知识来提取代码特征,简化为自然语言的处理方法过于简单,容易造成信息丢失,而引入专家制定启发式规... 神经网络在软件工程中的应用极大程度上缓解了传统的人工提取代码特征的压力。已有的研究往往将代码简化为自然语言或者依赖专家的领域知识来提取代码特征,简化为自然语言的处理方法过于简单,容易造成信息丢失,而引入专家制定启发式规则的模型往往过于复杂,可拓展性以及普适性不强。鉴于以上问题,提出了一种基于卷积和循环神经网络的自动代码特征提取模型,该模型借助代码的抽象语法树(AST)来提取代码特征。为了缓解因AST过于庞大而带来的梯度消失问题,对AST进行切割,转换成一个AST序列再作为模型的输入。该模型利用卷积网络提取代码中的结构信息,利用双向循环神经网络提取代码中的序列信息。整个流程不需要专家的领域知识来指导模型的训练,只需要将标注类别的代码作为模型的输入就可以让模型自动地学习如何提取代码特征。应用训练好的分类编码器,在相似代码搜索任务上进行测试,Top1、NDCG、MRR的值分别能达到0.560、0.679和0.638,对比当下前沿的用于代码特征提取的深度学习模型以及业界常用的代码相似检测工具有显著的优势。 展开更多
关键词 代码特征提取 代码分类 程序理解 相似代码搜索
在线阅读 下载PDF
基于上下文特征融合的代码漏洞检测方法 被引量:3
2
作者 徐泽鑫 段立娟 +1 位作者 王文健 恩擎 《浙江大学学报(工学版)》 EI CAS CSCD 北大核心 2022年第11期2260-2270,共11页
针对现有代码漏洞检测方法误报率和漏报率较高的问题,提出基于上下文特征融合的代码漏洞检测方法.该方法将代码特征解耦分为代码块局部特征和上下文全局特征.代码块局部特征关注代码块中关键词的语义及其短距离依赖关系.将局部特征融合... 针对现有代码漏洞检测方法误报率和漏报率较高的问题,提出基于上下文特征融合的代码漏洞检测方法.该方法将代码特征解耦分为代码块局部特征和上下文全局特征.代码块局部特征关注代码块中关键词的语义及其短距离依赖关系.将局部特征融合得到上下文全局特征从而捕捉代码行上下文长距离依赖关系.该方法通过局部信息与全局信息协同学习,提升了模型的特征学习能力.模型精确地挖掘出代码漏洞的编程模式,增加了代码漏洞对比映射模块,拉大了正负样本在嵌入空间中的距离,促使对正负样本进行准确地区分.实验结果表明,在9个软件源代码混合的真实数据集上的精确率最大提升了29%,召回率最大提升了16%. 展开更多
关键词 代码漏洞检测 代码块局部特征提取 上下文全局特征融合 短距离依赖 长距离依赖
在线阅读 下载PDF
基于增强描述的代码搜索方法 被引量:14
3
作者 黎宣 王千祥 金芝 《软件学报》 EI CSCD 北大核心 2017年第6期1405-1417,共13页
如何有效地帮助程序员从目前的各种代码库中搜索与特定编程任务相关的代码,已成为软件工程重要的研究领域之一.提出一种基于增强描述的代码搜索方法 DERECS,该方法首先基于开源项目、问答系统等构建一个代码-描述语料库,并分析代码及自... 如何有效地帮助程序员从目前的各种代码库中搜索与特定编程任务相关的代码,已成为软件工程重要的研究领域之一.提出一种基于增强描述的代码搜索方法 DERECS,该方法首先基于开源项目、问答系统等构建一个代码-描述语料库,并分析代码及自然语言描述,提取方法调用和代码结构相关特征值;然后,基于代码片段中的方法调用及代码片段的结构特征对代码进行描述增强,以减小被搜索的代码与自然语言查询语句之间的差异,扩大搜索的范围.使用真实自然语言查询语句作为测试基准,对DERECS进行验证.验证结果表明,DERECS的效果显著优于典型方法 SNIFF和Krugle的查询结果. 展开更多
关键词 代码搜索 自然语言处理 代码-描述对 代码特征提取 代码描述增强
在线阅读 下载PDF
基于众包问答信息的API使用代码搜索 被引量:1
4
作者 李宇琨 彭鑫 赵文耘 《计算机应用与软件》 北大核心 2018年第7期43-51,共9页
现代软件开发大量依赖类库以及第三方软件框架和开发,为此软件开发者经常需要寻找能够解决特定问题的应用程序编程接口API并通过示例代码学习相关API的使用方式。然而,由于开发者的问题描述与相关的API及其使用代码之间的词汇上经常存... 现代软件开发大量依赖类库以及第三方软件框架和开发,为此软件开发者经常需要寻找能够解决特定问题的应用程序编程接口API并通过示例代码学习相关API的使用方式。然而,由于开发者的问题描述与相关的API及其使用代码之间的词汇上经常存在差异,因此直接的代码搜索效果往往不好。Stack Overflow等众包问答网站上存在着很多开发问题及建议解决方案,其中也会包含一些API等代码元素,可以成为问题描述和代码内容之间匹配的桥梁。基于这一思想,提出并实现一种基于众包问答信息的API使用代码搜索方法。该方法首先借助于众包问答信息将问题描述对应到相关的代码元素上,并生成一种包含结构信息的代码骨架,然后基于代码骨架对代码库(例如开源项目代码)进行搜索和匹配,从而生成搜索结果。为了验证方法的有效性,收集了Stack Overflow上的137多万条问答信息以及GitHub上的3亿行Java源码,并针对30个与API相关的问题进行了实验验证。结果表明,96.6%的问题能在前十个结果中找到正确答案,有40%的问题能在第一个结果中找到正确答案,并且所有问题能在2 s内返回结果。 展开更多
关键词 代码搜索 代码特征提取 文本摘要
在线阅读 下载PDF
基于Transformer和卷积神经网络的代码克隆检测 被引量:2
5
作者 贲可荣 杨佳辉 +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 下一页 到第
使用帮助 返回顶部