System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 包括空洞建议的代码完成制造技术_技高网

包括空洞建议的代码完成制造技术

技术编号:40002595 阅读:8 留言:0更新日期:2024-01-09 04:04
一种代码完成工具使用注意力神经变换器模型生成有空洞的语法正确的候选来完成部分形成的源代码片段。该模型被训练来预测代码片段的底层语法的产生规则的非终结符号的扩展,不再局限于从左到右的扩展顺序。空洞是在候选中标记位置的编程语言的语法的非终结符号,其中代码完成引擎不确定应该被用来扩展非终结符号的产生规则。该空洞允许代码完成引擎在候选中扩展其他非终结符号和允许用户引导在候选中空洞的扩展。

【技术实现步骤摘要】
【国外来华专利技术】


技术介绍

1、软件开发环境通常用于帮助软件开发者(即,用户、程序员等)开发程序代码。软件开发环境可以包括源代码编辑器和开发者用来编写和测试其程序的其他工具。一些软件开发环境包括提供帮助的代码完成特征,其在当开发者正在编辑代码时,通过基于开发者已经输入到源代码编辑器的一个或多个字符(即,字母、符号等)自动呈现可能的候选列表。弹出菜单可以与开发者可能使用的若干建议代码元素一起出现。这种帮助是有益的因为它加速了开发时间并且减少了常见错误,例如打字错误。

2、当代码完成系统生成不正确的逼真的内容时,自动代码完成特征可能会有问题。不正确的候选混淆用户、引入错误和对用户在软件开发环境的体验产生负面影响。


技术实现思路

1、提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的节选概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

2、代码完成系统预测语法正确的候选来完成包括一个或多个空洞的部分形成的源代码片段。空洞表示代码完成系统不确定非终结符号的扩展。空洞允许代码完成系统扩展候选中的每个非终结符号,不再局限于从左到右的扩展顺序。以这种方式,当生成的标记(token)的概率低于置信阈值时,系统以较高精度生成语法正确的源代码候选,而不是停止扩展,从而导致系统无法完成剩余的候选。

3、代码完成系统利用具有双向编码器的注意力神经变换器(transformer)模型和具有非终结注释工具的自回归解码器来预测具有一个或多个空洞的语法正确的候选,而不是生成截断的标记序列。

4、利用注意力的神经变换器模型利用源代码程序的部分代码状态的监督学习训练数据集而被训练。部分代码状态相当于源代码程序的部分扩展语法树的叶子的线性化。部分代码状态包括至少一个非终结符号。通过部分代码状态的应用来训练模型以学习编程语言的语法的产生规则,以便于预测用以扩展的最可能的非终结符号和用以执行扩展的最可能的产生规则。

5、在推理期间,使用嵌套波束搜索来寻找最可能的候选,以通过执行由注意力神经变换器模型预测的最可能的扩展来完成部分形成的源代码片段。然后将前k个候选呈现给用户。以这种方式,给予用户完整的结构(例如,语句、方法等)而不是候选的截断部分,为代码完成系统提供更好的用户体验。

6、这些和其他特征和优点将通过以下详细描述和相关附图变得容易理解。应当理解,前面大概的描述和下面的详细描述只是说明性的,并非用于限制所要求保护的范围。

本文档来自技高网...

【技术保护点】

1.一种系统,包括:

2.根据权利要求1所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

3.根据权利要求1所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

4.根据权利要求1所述的系统,其中所述深度学习模型是利用注意力的神经变换器模型。

5.根据权利要求4所述的系统,其中所述利用注意力的神经变换器模型包括多个编码器块和多个解码器块。

6.根据权利要求5所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

7.根据权利要求5所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

8.一种方法,所述方法在具有处理器和存储器的计算设备上被执行,所述方法包括:

9.根据权利要求8所述的方法,还包括:

10.根据权利要求8所述的方法,还包括:

11.根据权利要求9所述的方法,还包括:

12.根据权利要求11所述的方法,还包括:

13.根据权利要求11所述的方法,其中所述嵌套波束搜索使用利用注意力的神经变换器模型来基于由所述利用注意力的神经变换器模型生成的输出概率分布来预测最可能的针对所述非终结符号的扩展。

14.根据权利要求9所述的方法,还包括:

...

【技术特征摘要】
【国外来华专利技术】

1.一种系统,包括:

2.根据权利要求1所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

3.根据权利要求1所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

4.根据权利要求1所述的系统,其中所述深度学习模型是利用注意力的神经变换器模型。

5.根据权利要求4所述的系统,其中所述利用注意力的神经变换器模型包括多个编码器块和多个解码器块。

6.根据权利要求5所述的系统,其中所述一个或多个程序包括执行以下动作的进一步指令:

7.根据权利要求5所述的系统,其中所述一个或多个程序包括...

【专利技术属性】
技术研发人员:M·阿拉玛尼斯郭达雅S·K·邓N·森达雷桑A·斯维亚特科夫斯基
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1