[发明专利]代码补全的方法和装置在审
| 申请号: | 202010607745.X | 申请日: | 2020-06-30 | 
| 公开(公告)号: | CN113867710A | 公开(公告)日: | 2021-12-31 | 
| 发明(设计)人: | 谭银燕 | 申请(专利权)人: | 华为技术有限公司 | 
| 主分类号: | G06F8/33 | 分类号: | G06F8/33 | 
| 代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 陈洪艳;王君 | 
| 地址: | 518129 广东*** | 国省代码: | 广东;44 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 代码 方法 装置 | ||
本申请提供了一种代码补全的方法和装置。该方法包括:接收来自代码补全客户端的代码补全请求,并根据该代码补全请求中的目标待补全代码片段和该目标待补全代码片段的待补全位置确定该目标待补全代码片段的前缀词,再根据该代码补全请求中的概率预测模型、该目标待补全代码片段的编程语言类型和该目标待补全代码片段的前缀词得到多种代码补全算法中的每种代码补全算法对应的潜在应用概率,进而根据每种代码补全算法的潜在应用概率确定该目标待补全代码片段的补全结果,最后将该补全结果发送代码补全客户端。这样在保证代码准确性的同时,减少了计算代码的补全结果的功耗开销,进而减少了用户等待代码补全的结果的时延,提高了用户体验。
技术领域
本申请涉及计算机领域,更具体地,涉及一种代码补全的方法和装置。
背景技术
代码编辑器是程序员用来开发,编辑代码的工具。为了减少程序员输入的代码量,提高代码开发效率,代码编辑器会提供代码补全功能。代码补全功能是指当程序员敲入部分代码时,代码编辑器以列表形式显示预测的多项后续部分代码,当预测出的后续代码与程序员想敲入的代码一致或部分一致时,程序员会从列表中选择一项自动补齐到代码编辑器。若程序员选择自动补齐的代码长度越长,则需要程序员手工输入的代码就越少,越大程度能减少程序员输入的代码量,更有效的提升开发效率。
传统方案中的代码补全技术有很多种。例如,每种编程语言(如Java、C++、python等)特有的语言服务器(language server)可以通过语法层面解析源代码,获取当前可用的变量名、类名及方法名、函数名,以此作为代码补全的结果。再例如,对代码库中的代码构建自然语言生成模型,以此来生成代码补全结果。
随着代码补全工具或服务的增多,综合考虑多种代码补全算法的优势,可以取长补短,能够提供更好的代码补全的结果。例如,对每条代码补全请求采用多种代码补全算法分别计算代码补全的结果,再合并通过多种代码补全算法计算得到的结果。但是,在代码补全算法较多的情况下,得到最终的代码补全的结果的计算量相应增大,进而加大用户等待代码补全的结果的时长。因此,如何减少用户等待代码补全的结果的时长,是亟待解决的技术问题。
发明内容
本申请提供一种代码补全的方法,能够减少计算代码补全的结果的功耗开销。
第一方面,提供了一种代码补全的方法,该方法包括:接收来自代码补全客户端的代码补全请求,所述代码补全请求包括目标待补全代码片段、所述目标待补全代码片段的编程语言类型和所述目标待补全代码片段的待补全位置;根据所述目标待补全代码片段和所述目标待补全代码片段的待补全位置,确定所述目标待补全代码片段的前缀词;根据概率预测模型、所述目标待补全代码片段的编程语言类型和所述目标待补全代码片段的前缀词,确定多种代码补全算法中的每一种代码补全算法的潜在应用概率,所述潜在应用概率是指采用所述每一种代码补全算法对所述代码补全请求进行计算得到的潜在补全代码被用户采用的概率;根据所述每一种代码补全算法的潜在应用概率,确定所述目标待补全代码片段的补全结果;向所述代码补全客户端发送所述目标待补全代码片段的补全结果。
代码补全装置接收来自代码补全客户端的代码补全请求,并根据该代码补全请求中的目标待补全代码片段和该目标待补全代码片段的待补全位置确定该目标待补全代码片段的前缀词,再根据该代码补全请求中的概率预测模型、该目标待补全代码片段的编程语言类型和该目标待补全代码片段的前缀词可以得到多种代码补全算法中的每一种代码补全算法对应的潜在应用概率,进而根据每一种代码补全算法的潜在应用概率,确定该目标待补全代码片段的补全结果,最后将目标待补全代码片段的补全结果发送代码补全客户端。这样代码补全装置通过提前存储概率预测模型,并根据该概率预测模型中的潜在应用概率选择部分代码补全算法,从而可以仅根据部分代码补全算法计算补全结果,即在保证代码准确性的同时,减少了计算代码的补全结果的功耗开销,进而减少了用户等待代码补全的结果的时长,提高了用户体验。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010607745.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:充电系统和汽车
- 下一篇:一种有机硅乳液型消泡剂及其制备方法





