-
题名一种利用大语言模型增强静态分析代码摘要能力的方法
- 1
-
-
作者
汪海沛
孙福特
张磊
-
机构
复旦大学计算机科学与技术学院
-
出处
《小型微型计算机系统》
北大核心
2025年第5期1177-1183,共7页
-
基金
国家自然青年基金项目(62102093)资助。
-
文摘
程序摘要技术作为静态分析的关键手段之一,一直以来都面临效率与精度的权衡问题.现有的传统静态分析工具为生成准确的摘要,需要耗费大量的分析时间.为解决这一问题,提出了利用大语言模型增强静态分析代码摘要能力的方法.首先,采用基于思维链的少样本提示方法对大语言模型进行微调,实现精准的摘要生成;其次,实现对复杂摘要导致状态爆炸问题的建模;最后,提出创新的静态分析与大语言模型的调度策略,提前预测需要应用大语言模型的场景,并实现大语言模型与静态分析过程的交互.设计并实现了工具LLM-SAST,并在Tomcat等开源软件上进行了测试.实验结果表明,相较于目前经典的静态分析工具FlowDroid与Soot,精度提升了10%~400%不等,运行时间减少了50%~90%不等,证明了该方法有效提升了静态分析的精度与效率.
-
关键词
静态程序分析
大语言模型
提示工程
代码摘要
-
Keywords
static analysis
LLM
prompt
code summarization
-
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
-
-
题名基于句法分析的代码摘要技术
被引量:2
- 2
-
-
作者
王金水
薛醒思
翁伟
-
机构
福建工程学院信息科学与工程学院
厦门理工学院计算机与信息工程学院
-
出处
《计算机应用》
CSCD
北大核心
2015年第7期1999-2003,共5页
-
基金
国家自然科学基金资助项目(61402108)
福建省中青年教师教育科研资助项目(JA14221)
+1 种基金
福建工程学院科研启动基金资助项目(GY-Z13113
GY-Z14068)
-
文摘
针对词袋模型忽略了词条之间语义关系和概念结构的问题,提出一种基于句法分析的代码摘要技术。首先,该技术利用词性标注识别出最有可能体现代码特性的关键词;然后,通过块分析修正在词性标注过程中可能引入的错误;其次,对标识出的关键词进行降噪,以减少文本噪声带来的不利影响;最后,从关键词中选取若干个权值最高的词以组成代码摘要。实验结果表明,与基于词频-逆文档频率(TF-IDF)和基于TF-IDF扩展的代码摘要技术对比,所提技术生成的代码摘要与参考答案的重叠率(overlap)至少分别提高了9%和6%,说明该技术能够生成更加准确的代码摘要。
-
关键词
代码摘要
文本摘要
句法分析
自然语言处理
程序理解
-
Keywords
source code summarization
text summarization
syntactic analysis
natui'al language processing
program comprehension
-
分类号
TP311.5
[自动化与计算机技术—计算机软件与理论]
-
-
题名基于神经网络的自动源代码摘要技术综述
被引量:9
- 3
-
-
作者
宋晓涛
孙海龙
-
机构
太原理工大学软件学院
软件开发环境国家重点实验室(北京航空航天大学)
北京航空航天大学软件学院
大数据科学与脑机智能高精尖创新中心(北京航空航天大学)
-
出处
《软件学报》
EI
CSCD
北大核心
2022年第1期55-77,共23页
-
基金
国家重点研发计划(2019YFB1705902)
国家自然科学基金(61972013,61932007)
教育部产学合作协同育人项目(201901195001)。
-
文摘
源代码的摘要可以帮助软件开发人员快速地理解代码,帮助维护人员更快地完成维护任务.但是,手工编写摘要代价高、效率低,因此人们试图利用计算机自动地为源代码生成摘要.近年来,基于神经网络的代码摘要技术成为自动源代码摘要研究的主流技术和软件工程领域的研究热点.首先阐述了代码摘要的概念和自动代码摘要的定义,回顾了自动代码摘要技术的发展历程,并介绍了生成式摘要的质量评估方法和评估指标;然后分析了神经代码摘要算法的通用结构、工作流程和面临的主要挑战;给出了代表性算法的分类,并对每类算法的设计原理、特点和限制条件进行了分析.最后,讨论并展望了未来神经代码摘要技术的发展趋势和研究方向.
-
关键词
智能软件工程
代码摘要
程序理解
神经网络
深度学习
-
Keywords
intelligent software engineering
source code summarization
program comprehension
neural network
deep learning
-
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
-
-
题名融合多种语义特征的代码摘要生成方法
- 4
-
-
作者
屈薇
周栋
赵文玉
曹步清
-
机构
湖南科技大学计算机科学与工程学院
-
出处
《中文信息学报》
CSCD
北大核心
2023年第11期81-90,共10页
-
基金
国家自然科学基金(62376062)
教育部人文社会科学研究项目(23YJAZH220)
+2 种基金
广东省哲学社会科学“十四五”规划项目(GD23CTS03)
广东省自然科学基金(2023A1515012718)
湖南省自然科学基金(2022JJ30020,2021JJ30274)。
-
文摘
生成任务旨在实现全自动化地产生自然语言描述源代码的功能,使其便于软件维护和程序理解。目前,主流的基于Transformer的方法只考虑源代码的文本和结构化语义特征,忽略了与源代码密切相关的API文档等外部语义特征;其次,在使用大规模数据的情况下,由于Transformer结构的自注意力模块需要计算所有相似度分数,因此存在计算成本高和内存占用量大的问题。为解决以上问题,该文提出了一种基于改进Transformer结构的融合多种语义特征的代码摘要生成方法。该方法采用三个独立编码器充分学习源代码的多种语义特征(文本、结构和外部API文档),并使用非参数化傅里叶变换替代编码器中的自注意力层,通过线性变换降低使用Transformer结构的计算时间和内存占用量,在公开数据集上的实验结果证明了该方法的有效性。
-
关键词
代码摘要
TRANSFORMER
API文档
傅里叶变换
-
Keywords
code summarization
transformer
API documentations
Fourier transform
-
分类号
TP391
[自动化与计算机技术—计算机应用技术]
-
-
题名项目上下文增强的自动代码摘要
- 5
-
-
作者
胡天翔
谢睿
叶蔚
张世琨
-
机构
北京大学软件工程国家工程研究中心
-
出处
《软件学报》
EI
CSCD
北大核心
2023年第4期1695-1710,共16页
-
基金
中国博士后科学基金(2021M700216)。
-
文摘
通过生成源代码片段的简短自然语言描述,可帮助开发人员理解代码并减少文档工作.近期,关于代码摘要的研究工作主要采用深度学习模型,这些模型中的大多数都在由独立代码摘要对组成的大型数据集上进行训练.尽管取得了良好的效果,这些工作普遍忽略了代码片段和摘要的项目级上下文信息,而开发人员在编写文档时往往高度依赖这些信息.针对该问题,研究了一种与开发者行为和代码摘要工具实现更加一致的代码摘要场景——项目级代码摘要,其中,创建了用于项目特定代码摘要的数据集,该数据集包含800k方法摘要对及其生命周期信息,用于构建特定时刻准确的项目项目上下文;提出了一种新颖的深度学习方法,利用高度相关的代码片段及其相应的摘要来表征上下文语义,并通过迁移学习整合从大规模跨项目数据集中学到的常识.实验结果表明:基于项目级上下文的代码摘要模型不仅能够比通用代码摘要模型获得显著的性能提升,同时,针对特定项目能够生成更一致的摘要.
-
关键词
代码摘要
项目上下文
迁移学习
-
Keywords
code summarization
contextual information
transfer learning
-
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
-
-
题名一种基于深度学习的源代码摘要生成模型
被引量:1
- 6
-
-
作者
孟尧
祝跃飞
-
机构
信息工程大学网络空间安全学院
数学工程与先进计算国家重点实验室
-
出处
《小型微型计算机系统》
CSCD
北大核心
2022年第11期2449-2455,共7页
-
基金
国家重点研发计划基金项目(2019QY1300)资助。
-
文摘
源代码摘要是一段用自然语言描述的有关源代码的简介.源程序和自然语言之间存在着巨大的差异,计算机程序生成的摘要很难满足实际的需要.本文提出了一个基于深度学习的代码摘要生成模型At-ComGen,该模型基于混合的注意力机制设计,使用编码器-解码器结构的神经网络搭建.为了保持源代码的文本和结构信息,At-ComGen模型在源代码编码过程中同时使用独立的词汇编码器和语法树编码器.At-ComGen的解码器中还创新性地引入了BERT预训练模型技术提高生成摘要的描述能力.实验结果表明,At-ComGen模型在BLUE、METEOR等评价指标上均优于目前流行的代码摘要生成模型.
-
关键词
源代码摘要
注意力机制
抽象语法树
BERT
LSTM网络
-
Keywords
code summary generation
attention
abstract syntax tree
BERT
LSTM
-
分类号
TP391
[自动化与计算机技术—计算机应用技术]
-
-
题名基于关键词的代码自动摘要
被引量:2
- 7
-
-
作者
张世琨
谢睿
叶蔚
陈龙
-
机构
北京大学软件工程国家工程研究中心
北京大学软件与微电子学院
-
出处
《计算机研究与发展》
EI
CSCD
北大核心
2020年第9期1987-2000,共14页
-
文摘
代码摘要(code summary)是对一段源代码简短的自然语言描述,代码自动摘要(code summarization)技术通过自动化地生成代码摘要辅助开发者更好地理解程序代码,该技术在许多软件开发活动中都具有重要的应用价值.代码自动摘要同时结合了机器翻译和文本摘要2个任务,如何更好地对代码建模以及如何更好地筛选代码中的关键信息是代码摘要所面临的主要挑战.受人类写摘要时的习惯和相关研究的启发,提出了一种基于关键词的代码自动摘要方法(keyword-based source code summarization,KBCoS).该方法将函数签名和API(application programming interface)调用视为关键词,并利用关键词序列来优化解码器注意力机制中的权重分布,使模型在生成摘要时更集中地关注代码中的重要信息.此外,为克服代码符号词汇表过大的问题,提出了符号部分拆分算法,即当符号不在词表中时,依据常用命名规则将符号拆成子符号的序列.该算法简单有效,能很好地平衡代码符号序列长度和未登录词数目之间的矛盾.选用了带有注意力机制的序列到序列模型作为基准模型,并在公开的Java代码摘要数据集上进行了评估.实验表明,基于关键词的注意力机制和部分拆分算法在BLEU-4,METEOR,ROUGE-L这3个评测指标上均能提升基准模型的表现.同时,在另一个Python数据集上也取得了一致的实验结果.最后,将KBCoS与现有模型相结合,在Java数据集上取得了当前最好的结果,该结果表明KBCoS也能改进现有的其他模型.评测结果和注意力权重的热力图都表明了KBCoS的有效性.
-
关键词
代码自动摘要
未登录词
注意力机制
关键词
编码器解码器
序列到序列
-
Keywords
code summarization
out-of-vocabulary(OOV)
attention mechanism
keyword
encoder-decoder
sequence to sequence(Seq2Seq)
-
分类号
TP311.5
[自动化与计算机技术—计算机软件与理论]
-
-
题名基于分层表示和上下文增强的类摘要生成技术
被引量:2
- 8
-
-
作者
陈豪伶
虞慧群
范贵生
李明辰
黄子杰
-
机构
华东理工大学计算机科学与工程系
-
出处
《计算机研究与发展》
EI
CSCD
北大核心
2024年第2期307-323,共17页
-
基金
国家自然科学基金项目(62372174,62276097)
大数据流通与交易技术国家工程实验室课题研究计划、上海市促进高质量发展专项资金项目(2021-GYHLW-01007)。
-
文摘
代码摘要是源代码的自然语言解释,高质量的代码摘要有助于提高开发人员程序理解效率.近年来,代码自动摘要的研究集中在为方法粒度的代码片段生成摘要.然而,对于面向对象的语言,例如Java,类才是项目的基本组成单元.基于上述问题,提出一种基于分层表示和上下文增强的类摘要生成方法HRCE(hierarchical representation and context enhancement),并构建了一个包含358 992个?Java类,上下文,摘要?数据对的类摘要数据集.HRCE使用代码精简策略去除类的非关键代码,从而缩短代码长度.然后,对类的层次结构,包括类签名、属性和方法分别进行建模,获得类的语义信息和层次结构信息.此外,从项目中抽取父类的签名及摘要来刻画类在项目中依赖的上下文.实验表明,基于分层表示和上下文增强的生成模型能够表征代码的语义和层次结构,并可以从目标类的内部和外部获取信息. HRCE在BLEU,METEOR,ROUGE-L等评估指标上超过了所有基准模型.
-
关键词
代码自动摘要
分层表示
上下文增强
深度学习
类摘要
-
Keywords
automatic code summarization
hierarchical representation
context enhancement
deep learning
class summarization
-
分类号
TP311.5
[自动化与计算机技术—计算机软件与理论]
-