Automatic Code Summarization via ChatGPT: How Far Are We?论文阅读笔记

在这里插入图片描述

Abstract

为了支持软件开发人员理解和维护程序,已经提出了各种自动代码摘要技术,用于为给定的代码片段生成简洁的自然语言注释。最近,大语言模型(LLMs)的出现大大提高了自然语言处理任务的性能。其中,ChatGPT是最受欢迎的一个,引起了软件工程界的广泛关注。然而,ChatGPT在(自动)代码摘要中的表现仍然不清楚。因此,在本文中,我们将重点评估ChatGPT在一个广泛使用的名为CSN-Python的Python数据集上的表现,并将其与几种最先进的代码摘要模型进行比较。具体而言,我们首先探索一个适当的提示,引导ChatGPT生成符合分布的注释。然后,我们使用这样的提示要求ChatGPT为CSN-Python测试集中的所有代码片段生成注释。我们采用三种广泛使用的度量标准(包括BLEU、METEOR和ROUGE-L)来衡量ChatGPT和SOTA模型(包括NCS、CodeBERT和CodeT5)生成的注释的质量。实验结果显示,在BLEU和ROUGE-L方面,ChatGPT的代码摘要性能显著低于所有三个SOTA模型。我们还提出了一些案例,并讨论了ChatGPT在代码摘要中的优缺点。基于这些发现,我们概述了ChatGPT基于代码摘要中的一些挑战和机遇。

Introduction

代码注释在促进程序理解[54, 63]和软件维护[11, 23]方面发挥着至关重要的作用。写高质量的代码注释是一种良好的编程实践[11, 53, 67]。然而,编写注释是一项劳动密集且耗时的任务。因此,在软件演化过程中往往缺乏高质量的注释,匹配不准确且过时。缺乏高质量的代码注释是软件行业的常见问题[27, 28]。自动代码摘要(简称为代码摘要)是一个热门研究课题[9, 47, 48],旨在设计先进技术来支持自动生成代码摘要(即注释)。对于开发人员提供的代码片段(例如Java方法或Python函数),代码摘要技术可以自动为其生成自然语言摘要。

近年来,提出了大量基于深度学习(DL)的代码摘要技术,如DeepCom[25]、NCS[1]和SIT [64]。它们利用在大规模代码注释语料库上训练的强大生成模型,将编程语言中的代码片段翻译成自然语言摘要[2, 18, 25, 30, 32, 48]。利用强大的深度学习,这些技术在自然性和信息量方面已经显示出优于传统的基于信息检索(IR)的技术[20, 21, 39, 40, 52]。之后,随着NLP领域(例如BERT和T5)中预训练和微调范式的成功,软件工程(SE)领域的许多工作引入了这一范式,以进一步提升代码相关任务,包括代码摘要(例如,CodeBERT [15]和CodeT5 [61])。在实践中,这些工作首先使用通用语言建模任务(如掩码语言建模(MLM)和单向语言建模(ULM))对大规模语言模型(即LLM)进行预训练。然后,他们在下游任务(如代码克隆检测、代码搜索和代码摘要)上对预训练模型进行微调。

最近,一种名为ChatGPT的智能人机对话LLM(Large Language Model)引起了极大关注。ChatGPT通过强化学习从人类反馈(RLHF)中微调GPT-3.5系列模型而创建[10]。与先前的DL方法相比,ChatGPT能够接受更长的输入,并且在生成答案时考虑了先前的聊天历史。随着ChatGPT的出现,人们对利用该模型进行各种自然语言处理任务的兴趣日益增长[5, 31, 43, 65]。除了自然语言外,ChatGPT还可以处理源代码,这引起了在SE任务中应用ChatGPT的兴趣不断增加[8, 13, 14, 50]。然而,对ChatGPT在代码摘要方面的探索仍然不足。

本文对ChatGPT的零短代码摘要性能进行了初步评估。本研究的概述如图1所示。总体思路是

  • 1、探索ChatGPT在代码摘要中的潜力,并将使用ChatGPT的探索策略与最先进的技术进行比较以得出结论。具体而言,我们首先设计了几个启发式问题来收集ChatGPT的反馈。根据反馈,我们找到了一个合适的提示来引导ChatGPT生成符合分布的注释。
  • 2、使用这样的提示要求ChatGPT为CSN-Python测试集中的所有14,918个代码片段生成注释。我们利用三种广泛使用的度量标准(即BLEU、METEOR、ROUGE-L)来衡量ChatGPT生成的注释与基准注释的质量。
  • 3、为了更深入地了解ChatGPT的代码摘要性能,我们将其与三种SOTA代码摘要模型的结果进行比较(包括NCS [1]、CodeBERT [15]和CodeT5 [61])。实验结果显示,总体而言,ChatGPT在BLEU、METEOR和ROUGE-L方面均不如三种SOTA代码摘要模型。我们还展示和分析了ChatGPT的一些成功、中等和弱案例。
  • 4、根据研究结果,我们概述了ChatGPT基于代码摘要中仍待解决的一些挑战和机遇,包括如何改进ChatGPT在现有基准数据集和度量标准上的表现,如何裁剪ChatGPT生成的丰富但长度过长的注释,如何通过结合现有数据集和ChatGPT生成的注释来创建更高质量的基准数据集,以及如何设计适当的度量标准来评估基于ChatGPT的代码摘要模型。

总之,我们的工作做出了以下贡献:
• 就我们所知,我们是第一个调查和分析ChatGPT的代码摘要性能的研究。
• 我们通过精心设计的启发式问题和反馈,找到了一个适当的提示来引导ChatGPT生成符合分布的注释。
• 我们在一个广泛使用的代码摘要数据集上评估了ChatGPT,并将其与三种SOTA代码摘要模型进行了比较。
• 基于研究结果,我们概述了基于ChatGPT的代码摘要所面临的几个挑战和机遇。

在这里插入图片描述

2 CHATGPT FOR AUTOMATIC CODE SUMMARIZATION

为了探索ChatGPT在代码摘要中的性能,我们提出了以下五个启发式问题:

  • Q1. ChatGPT能够执行代码摘要任务吗?
  • Q2. ChatGPT生成的注释是什么样子的?
  • Q3. 如何使用ChatGPT生成简洁的注释?
  • Q4. ChatGPT建议用什么类型的提示来生成简短的注释?
  • Q5. 在Q4中,ChatGPT建议的提示和Q3中提出的提示哪一个效果更好?

基于对ChatGPT的回答(反馈)的观察,我们提供了一个合适的提示,引导ChatGPT生成符合分布的注释。具体问题、答案和观察结果将在接下来的章节中描述。

2.1 Q1:CanChatGPTperform code summarization tasks?

在这个问题中,我们想要弄清楚ChatGPT是否可以用于代码摘要。图2(a)和(b)展示了我们用来查询ChatGPT的提示以及ChatGPT的答案。

在这里插入图片描述

从图2(b)中可以观察到,ChatGPT明确地回答说它可以为给定的编程语言函数生成注释。因此,我们可以得出结论,尽管ChatGPT的主要目的并不是用于自动化代码摘要,但它仍然可以应用于此。

2.2 Q2:Whatdoesthe commentgenerated by ChatGPT look like?

在这个问题中,我们想要查看ChatGPT为特定代码片段生成的注释。我们以图3(a)中的代码片段𝑐1为例,要求ChatGPT为其生成注释。图4展示了我们用来询问ChatGPT的两个提示以及ChatGPT的相应答案。为了避免不必要的冗余,在图4中,我们使用占位符“”来表示代码片段𝑐1。从图4(b)中可以观察到,与图3中显示的基准注释𝑠1相比,ChatGPT为𝑐1生成的注释非常详细。

直观地说,不同的编程语言(例如Java和Python)在语法、风格和编码标准上有明显的差异。因此,我们验证是否可能在提供代码片段的前提下不指定编程语言。图4©展示了一个例子。与图4(a)中的提示P1相比,提示P2没有指定编程语言,ChatGPT的相应答案显示在图4(d)中。可以观察到,尽管提示P2没有指定编程语言,但答案中第一行明确描述了“This is a Python function”。这意味着ChatGPT识别出𝑐1是用Python编写的。此外,尽管整体上有一些差异,但答案中的核心功能摘要在P2的回答(即“This is a Python function that takes a list of integers as input and returns the most frequent even integer in the list.”)与P1的回答(即“This function takes a list of integers as input and returns the most frequently occurring even number in the list.”)中语义上是等价的。这表明ChatGPT可以识别给定代码的编程语言,因此我们在下面的提示中不指定编程语言。根据以上观察,我们可以得出结论,可以在不指定编程语言的情况下使用ChatGPT进行代码摘要。

在这里插入图片描述

在这里插入图片描述
从对Q2的回答中,我们观察到一个现象,即ChatGPT生成的注释太长了,比基准注释长得多。通常情况下,我们希望得到一句话内的注释。通常情况下,人类开发人员也不会写那么长的注释。因此,在这个问题中,我们探讨如何修改提示来引导ChatGPT生成更简洁的注释。

一个简单的想法是在提示中添加一些带有“简洁”含义的形容词。具体来说,我们尝试了三个形容词,包括“short”、“succinct”和“concise”。表1的第(1)–(3)行显示了详细的提示以及ChatGPT的相应答案。可以观察到,这三个注释明显比图4(b)和(d)中的长得多,但仍然比图3中显示的基准注释(包含11个单词)长。与包含“concise”的提示生成的注释(第(3)行)相比,使用包含“short”的提示生成的注释(第(1)行)更接近基准注释。

在这里插入图片描述

2.3 Q3:How to use ChatGPT to generate concise comments?

在上一个问题中,我们发现了一个看似不错的提示,可以指导ChatGPT生成简短的注释。在这个问题中,我们想知道ChatGPT建议用于生成简短注释的提示是什么样的。表2列出了我们为Q4设计的四个提示以及ChatGPT的相应答案。

从表2的第(1)和(2)行可以观察到,ChatGPT期望用户提示提供关于输入代码片段功能的简要描述。然而,这种期望是人类期望ChatGPT所做的。因此,行(1)和(2)的答案中建议的提示是不合适的。从表2的第(3)和(4)行可以观察到,ChatGPT提供了三个建议提示的示例(以蓝色字体突出显示)。

在这里插入图片描述

2.5 Q5:Whichoneperforms better, the ChatGPT-suggested prompts in Q4 or the prompt proposed in Q3?

基于这些示例,我们设计了三个新提示。在表3中,第(1)行显示了我们在Q3中找到的提示及其相应的ChatGPT答案,而第(2)-(4)行显示了我们基于Q4中ChatGPT建议的提示设计的三个提示,观察到使用第(2)-(4)行中的提示生成的注释显着长于使用第(1)行中的提示生成的注释。

此外,我们使用更多的数据验证包含“short”的提示。具体而言,我们从CSN-Python测试集中随机选择50个样本,然后使用包含“short”的提示询问ChatGPT生成注释。
在这里插入图片描述

图5显示了ChatGPT使用包含“short”的提示生成的注释(即ChatGPT(short))与所有50个样本上的基准注释(即基准真值)的长度分布。观察到ChatGPT(short)相关的中位数、第一四分位数和第三四分位数均大于基准真值相关的值。为了测试这两种方法之间是否存在统计学上的显著差异,我们按照先前报告的涉及随机算法的推断统计分析指南,在显著性水平为5%的情况下执行配对Wilcoxon-Mann-Whitney符号秩检验。ChatGPT(short)与基准真值之间的p值小于0.05的显著阈值,这意味着ChatGPT(short)生成的注释是不符合分布的。

我们通过在包含“short”的提示上添加额外约束条件来设计两个新提示。具体而言,我们使用两种类型的约束条件:句子限制和单词限制。我们首先分析了CSN-Python测试集中基准真值注释的数据分布。

在这里插入图片描述
图6显示了根据句子数量的评论数量的统计数据。观察到大多数基准真值注释(约90%)只包含一句话。

在这里插入图片描述
图7显示了根据包含的单词数量的评论数量的统计数据。观察到大多数基准真值注释(约99%)包含不到40个单词。
在这里插入图片描述
表4的第(1)行显示了带有句子限制的提示(即以红色字体突出显示的“in one sentence”)以及ChatGPT生成的相应注释。第(2)-(4)行显示了带有单词限制的提示(即以红色字体突出显示的“within/in/no morethan40words”)以及ChatGPT生成的相应注释。尽管我们明确要求ChatGPT生成不超过40个单词的注释,但它并没有理解。

在这里插入图片描述
进一步地,我们使用之前提到的随机选择的50个样本来验证包含“in one sentence”和“within 40 words”的提示。图8展示了使用三个提示生成的注释的长度分布,其中ChatGPT(within 40 words)和ChatGPT(in one sentence)表示我们分别使用表4中的第(1)和(2)行中显示的提示来指导ChatGPT生成注释。从图8中可以观察到,除了使用ChatGPT(in one sentence)生成的注释之外,使用ChatGPT(within 40 words)和ChatGPT(short)生成的注释的长度与基准真值注释的长度明显不同。

在这里插入图片描述

我们报告并比较了ChatGPT(short)、ChatGPT(in one sentence)和ChatGPT(within 40 words)生成的注释的质量。表5展示了使用上述三个提示的ChatGPT的性能。从这个表格可以观察到,ChatGPT(in one sentence)在BLEU、METEOR和ROUGE-L方面取得了最高分,分别为10.66、13.36和20.37,并且表现优于ChatGPT(short)和ChatGPT(within 40 words)。

总结:
基于精心设计的启发式问题和ChatGPT的反馈(包括对随机选择的50个样本的初步结果),我们找到了一个合适的提示,可以指导ChatGPT生成符合分布的注释。这个合适的提示是:“请为以下函数生成一句话的简短注释:”。

3 EXPERIMENTALDESIGN

3.1 Dataset

我们在由Code SearchNet(CSN)语料库提供的Python数据集上进行实验[29]。Lu等人[38]表明,CSN语料库中的一些注释与代码片段无关,并对CSN语料库进行了数据清理。因此,在本文中,我们遵循[15, 61],使用了Lu等人[38]提供的CSN语料库的清理版本,其中训练/验证/测试集分别包含251,820/13,914/14,918个样本

3.2 baseline

在本节中,我们介绍了几个作为基准线选定的基于深度学习的代码摘要模型,包括NCS [1]、CodeBERT [15]和CodeT5 [61]。

NCS。NCS [1]是第一个基于Transformer的代码摘要模型。它采用了Transformer-based编码器-解码器架构。它在Transformer中加入了复制机制 [45],允许从词汇表生成单词并从源代码中复制单词。

CodeBERT。CodeBERT [15]是用于源代码的代表性预训练模型。它使用与RoBERTa base [37]相同的模型架构。CodeBERT通过掩码语言建模(MLM)任务和替换令牌检测(RTD)任务进行训练。CodeBERT的作者对其进行了微调并在代码摘要任务上进行了测试(在他们的论文中也称为代码文档生成任务)。

CodeT5。CodeT5 [61]是用于源代码的SOTA预训练模型。CodeT5建立在与T5 [44]相同的编码器-解码器框架上。它通过四个预训练任务进行训练,包括掩码跨度预测(MSP)任务、标识符标记(IT)、掩码标识符预测(MIP)和双模双生成(BDG)。与CodeBERT不同,CodeT5具有预训练的解码器。CodeT5的作者还对代码摘要任务进行了实验。

ChatGPT。目前,ChatGPT [41]是最先进且可能是最强大的大型语言模型(LLM)。它在大量文本和代码中进行训练,包括广泛的用户查询和与这些查询相关的连贯响应。这些训练数据使ChatGPT适用于聊天机器人或虚拟助手。此外,它还采用了先进的监督指导微调技术和RLHF [10],以更有效地适应特定任务或领域。在本文中,我们进行了实验,以探究ChatGPT在代码摘要任务上的能力。

其他的比较常规就不放了

4 RESULT ANALYSIS AND CASE STUDY

4.1 Result Analysis

在本节中,我们报告并比较了ChatGPT(onesentence)和三个SOTA模型(包括NCS、CodeBERT和CodeT5)在CSN-Python数据集的整个测试集上生成的注释。ChatGPT(onesentence)表示我们统一使用以下提示来指导ChatGPT为CSN-Python测试集中的所有代码片段生成注释:
在这里插入图片描述
表6显示了ChatGPT(onesentence)、NCS、CodeBERT和CodeT5的总体表现。从这个表格中可以观察到:1)在BLEU和ROUGE-L方面,ChatGPT获得了最低的得分,分别为10.28和20.81,比所有三个SOTA基线都差;在METEOR方面,ChatGPT与CodeT5可比,优于NCS和CodeBERT。
在这里插入图片描述
图9显示了在CSN-Python数据集的测试集中,ChatGPT和最佳基线CodeT5生成的注释的得分分布情况。观察到:1)就BLEU和ROUGE-L而言,与ChatGPT相关的中位数、第一四分位数和第三四分位数都大于与CodeT5相关的值;2)就METEOR而言,与CodeT5相关的第三四分位数大于与ChatGPT相关的值。为了测试CodeT5和ChatGPT之间是否存在统计上的显著差异,我们以5%的显著性水平执行配对的Wilcoxon-Mann-Whitney符号秩检验。对于所有三个指标,CodeT5和ChatGPT之间的所有p值都小于0.05的显著阈值,这意味着由CodeT5生成的注释明显优于由ChatGPT生成的注释。
在这里插入图片描述

4.2 Case Study

在本节中,我们提供案例研究以了解ChatGPT生成的摘要与CodeT5相比的情况,以展示ChatGPT的优势和劣势。

4.2.1 sucessful case

图10(a)是CSN-Python中的一个代码片段,图10(b)显示了参考摘要以及CodeT5和ChatGPT生成的注释。ChatGPT生成的注释涵盖了“建立连接”和“到Druid代理”的主要语义。但是,CodeT5生成的注释使用了错误的动词“获取”而不是“建立”,这可能是由于代码中“获取连接”的频繁出现引起的。这表明了ChatGPT能够更好地理解代码的内在含义,而不受代码词汇的干扰。此外,ChatGPT倾向于在生成的注释中描述更详细的代码行为,比如“返回连接对象”。
在这里插入图片描述

4.2.2 moderate cases

图11(b)显示了参考摘要以及CodeT5和ChatGPT对图11(a)中的代码片段生成的注释(CSN-Python中的一个代码片段)。CodeT5和ChatGPT生成的注释都涵盖了参考摘要中“打印日志消息”的主要语义。然而,ChatGPT生成的注释忽略了参考摘要中的第二部分“到标准错误”,并替换为不相关的信息“使用颜色编码”。值得一提的是,CodeT5生成的注释包含“到stderr”,这可能是从代码中的“sys.stderr.write”中获取的提示。这表明,与CodeT5相比,ChatGPT对编程语言的特征或关键字不太敏感。

在这里插入图片描述

4.2.3 weak cases

图12(a)是CSN-Python中的一个代码片段。图12(b)显示了参考摘要以及CodeT5和ChatGPT生成的注释。CodeT5和ChatGPT都没有意识到代码的功能是“执行SQL”语句。它们错误地将其误解为复制操作,这可能是由于忽略了句子“conn.commit()”引起的。这表明ChatGPT可能仍然在理解代码的深层逻辑方面存在一些困难。
在这里插入图片描述

7 OPPORTUNITIES

(1) A lot of room for improvement on existing datasets.

在本文中,我们直接在CSN-Python测试集上运行ChatGPT,没有进行任何微调过程。这是一种零-shot应用场景。从表6的结果中可以看出,ChatGPT在CSN-Python数据集上的零-shot代码摘要性能仍有很大的改进空间。由于ChatGPT背后的大型语言模型GPT 3.5/4不是开源的,微调它并不现实。提高其代码摘要性能的一个可行方法是探索更有效的提示。然而,依靠手工尝试是耗时且劳动密集的。如何利用提示工程自动探索更好的提示值得进一步研究。在本文中,我们提供了两个优化方向,以探索适当的提示来指导ChatGPT生成分布式评论,即句子限制和单词限制。其他优化方向也值得进一步探索。

(2) Cropping and templating the rich but lengthy comments that ChatGPT generates by default.

在第2节中,我们发现ChatGPT可以生成丰富而长的评论。需要注意的是,虽然ChatGPT生成的评论相对较长,但这并不意味着这些长评论是无用的。图13显示了一个示例,其中(a)显示了函数“validate_value()”的提示和由ChatGPT生成的评论;(b)显示了函数“validate_value()”的参考评论;©显示了将由ChatGPT生成的评论进行裁剪并插入到函数“validate_value()”中的示例。从图中可以观察到:1)与参考评论相比,ChatGPT生成的评论包含更多细节;2)对ChatGPT生成的评论进行裁剪,并将裁剪后的评论(例如,图13(a)中突出显示的黄色评论)与模板(例如,图13©中插入的文档字符串)结合起来,对开发人员非常有用和友好。因此,如何从这些评论中自动提取简洁而有用的信息也值得进一步研究。Python增强提案[56]提供了详细的编码规范,可以用来指导评论模板的设计。

在这里插入图片描述
目前,广泛用于代码摘要的数据集(例如CSN语料库[29])的质量尚未经过验证。这些数据集通常是从开源平台(如GitHub[16])中爬取的,然后经过简单的数据清理。我们发现一些参考评论质量较低。图14显示了一个低质量的参考评论示例。从图14©可以观察到,𝑐5的参考评论太短,没有总结出𝑐5的功能。与参考评论相比,ChatGPT为𝑐5生成的评论更具信息量,总结了𝑐5的核心语义。因此,我们认为如何利用ChatGPT构建用于代码摘要的高质量基准数据集值得进一步探索。
在这里插入图片描述
图15(a)显示了一个代码片段𝑐6,图15(b)显示了参考评论以及CodeT5和ChatGPT生成的评论。从图中可以观察到,尽管CodeT5生成的评论在BLEU、METEOR和ROUGE-L方面表现优于ChatGPT生成的评论,但是在CodeT5生成的评论中缺少“a valid filename”这个语义。然而,ChatGPT生成的评论涵盖了“Converts a string”和“to a valid filename”的语义,尽管没有使用确切的词语。这是一个强有力的证据,传统的评估指标不再适用于评估ChatGPT生成的评论的质量。

在这里插入图片描述

Conclusion

在本文中,我们初步设计了启发式问题,探索适当的提示,以指导ChatGPT生成符合分布的评论。我们将ChatGPT的自动代码摘要性能与三种专用代码摘要模型(即NCS、CodeBERT和CodeT5)在CSN-Python数据集上进行了比较。我们发现,总体而言,在BLEU、METEOR和ROUGE-L方面,ChatGPT在CSN-Python数据集上的性能不及专用的代码摘要模型。根据我们的发现,我们概述了应用ChatGPT进行代码摘要的四个开放性挑战和机遇。我们希望我们的结果和观察对未来在代码摘要领域中使用ChatGPT的工作有所帮助。

### 回答1: 代码摘要化是指将源代码转换为更简洁、易于理解的形式,以便于程序员更快速地理解和修改代码。它可以通过自然语言生成、图形表示或其他方式来实现。代码摘要化是软件工程领域的一个重要研究方向,可以提高代码的可读性和可维护性。 ### 回答2: Code summarization是指将程序源代码压缩为仅包含最重要信息的简短描述的过程。通常情况下,程序员编写的代码随着时间的推移会越来越大,其中的细节会越来越复杂。这些复杂的代码难以阅读和理解,因此影响了软件开发人员的速度和生产力。 Code summarization是解决这个问题的一种方法。该方法可以在代码阅读时,主要关注重要的代码和功能,从而减少理解软件系统的时间。它可以通过裁剪代码中的不必要部分,只获取必要的信息来完成这个过程。对于开发人员而言,这将极大地提高他们的生产率,并使他们能够更好地理解和修改自己或其他程序员编写的代码。 使用Code summarization的好处是显而易见的。它可以使程序员更快地阅读和理解代码,而不必在尝试理解大量的细节上花费太多时间。对于新手程序员而言,这个工具将非常有用,因为它可以让他们更快地从代码中提取出重要的信息。在实现Code summarization的过程中,可以采用多种技术和方法。例如,可以使用机器学习算法来自动提取代码中的关键信息。 总之,Code summarization是一种有效的方式,可以帮助程序员更快地理解和修改庞大复杂的代码库。它可以通过抓取必要的信息和摒弃无用的细节,大大提高代码的可读性和生产力。 ### 回答3: 代码摘要,也称为代码概要,是指将源代码自动压缩为更短的版本,通常用于加速快速阅读和理解代码,以提高开发人员的生产效率。在具体实现上,代码摘要算法须要考虑多种因素,如代码上下文、语义模型、语言特性等。 为了实现代码摘要功能,有多种方法可供选择。其中,基于神经网络的机器学习方法被广泛应用于代码摘要中。基于深度学习的代码摘要算法可以通过处理源代码与人类语言之间的关系进行学习,从而生成描述代码功能的问题。 深度学习算法通过利用大量数据和强大的计算技术进行学习和训练,从而定位代码的语义内容,而语义信息可转化为自然语言表达式,这使得部分代码的执行过程成为了自动化执行。使用深度学习进行代码概要化的过程,二生产了一个类似自然语言的代码摘要,提供了对源代码控制流和输入、输出的新视角。 总之,代码摘要技术可以帮助开发人员在节省时间的同时提高代码可读性和可维护性,从而极大地提高开发人员的生产效率并推动整个软件行业的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值