代码推荐的制作方法

文档序号:12287746阅读:来源:国知局

技术特征:

1.一种至少部分地由计算机实现的系统,包括:

上下文确定单元,所述上下文确定单元被配置为至少部分地基于与代码段中的方法调用的数据依赖性来确定针对所述代码段的编程上下文;

片断检索单元,所述片断检索单元被配置为至少部分地基于所确定的编程上下文来从知识库中检索候选代码片断;以及

推荐单元,所述推荐单元被配置为将检索到的候选代码片断中的至少一些检索到的候选代码片断呈现为代码推荐。

2.根据权利要求1所述的系统,其中所述上下文确定单元被配置为:

确定在所述代码段中调用的具有与所述方法调用的所述数据依赖性的方法的序列。

3.根据权利要求1所述的系统,还包括排名单元,所述排名单元被配置为根据预定义准则来对检索到的候选代码片断进行排名,并且

其中所述推荐单元被配置为将经排名的候选代码片断呈现为所述代码推荐。

4.根据权利要求3所述的系统,其中所述预定义准则包括以下各项中的至少一项:

所述候选代码片断与所述编程上下文的相关性;

所述候选代码片断的用途的流行度;

所述候选代码片断的简洁性;以及

所述代码推荐的多样性。

5.根据权利要求4所述的系统,其中所述排名单元被配置为:

根据所述相关性、用途的所述流行度和所述简洁性中的至少一项来对检索到的候选代码片断进行排名;以及

根据所述多样性来对经排名的候选代码片断进行重新排名,使得预定义数量的经重新排名的候选代码片断彼此不相似。

6.根据权利要求1所述的系统,其中所述推荐单元还被配置为:

在所呈现的代码片断中的至少一个所呈现的代码片断中突出变化点,所述变化点由与所述至少一个所呈现的代码片断相关联的元数据指示。

7.一种至少部分地由计算机实现的方法,包括:

基于被包括在代码片断中的方法调用来获得所述代码片断的组;

选择针对所述组的代表性代码片断;

生成针对所述代表性代码片断的元数据,所述元数据至少指示所述代表性代码片断中的变化点;以及

将所述代表性代码片断与所述元数据相关联地存储在知识库中。

8.根据权利要求7所述的方法,其中所述组内的代码片断通过基于代码段中的方法调用从所述代码段中提取所述代码片断来获得。

9.根据权利要求8所述的方法,其中提取所述代码片断包括:

标识与所述代码段中的所述方法调用相关的至少一个变量;

基于所述至少一个变量来确定具有与所述代码段中的所述方法调用的数据依赖性的至少一个语句;以及

从所述代码段中提取所述至少一个语句作为所述代码片断的一部分。

10.根据权利要求9所述的方法,其中所述至少一个语句包括具有与所述方法调用的间接数据依赖性的语句。

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

在所述提取之前对在所述代码段中被重用的变量进行重命名。

12.根据权利要求8所述的方法,其中提取所述代码片断包括:

提取与针对所述方法调用的控制流相关联的至少一个语句。

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

检测所提取的代码片断中在语法上彼此相同的代码碎片;以及

基于所标识的代码碎片来从所提取的代码片断中移除代码克隆。

14.根据权利要求7所述的方法,其中选择所述代表性代码片断包括:

基于所述组内的所述代码片断的形状来将所述组划分成子组,代码片断的所述形状为通过对所述代码片断中的标识符进行标记而获得的语句的序列;

至少部分地基于所述子组的大小来确定所述子组中的一个子组;以及

从所确定的子组中选择所述代表性代码片断。

15.根据权利要求14所述的方法,其中生成针对所述代表性代码片断的所述元数据包括:

标识在所确定的子组中的所述代表性代码片断与另一代码片断之间的差异;以及

基于所标识的差异来确定所述变化点。

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

在所述组的所述获得之前从所述代码片断中移除预定义零散方法调用。

17.根据权利要求7所述的方法,其中代码片断的所述组与应用编程接口(API)方法的用途相关联。

18.一种至少部分地由计算机实现的方法,包括:

由第一系统通过基于被包括在多个代码片断中的方法调用对所述多个代码片断进行分组来获得代码片断的多个组;

由所述第一系统选择针对所述多个组中的每个组的代表性代码片断以获得多个代表性代码片断;

由所述第一系统将所述多个代表性代码片断存储在知识库中;

由第二系统至少部分地基于与代码段中的方法调用的数据依赖性来确定针对所述代码段的编程上下文;

由所述第二系统至少部分地基于所确定的编程上下文来从所述知识库中检索一个或多个代表性代码片断;以及

由所述第二系统将检索到的代表性代码片断的至少一些检索到的代表性代码片断呈现为代码推荐。

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

由所述第一系统生成与所述代表性代码片断中的每个代表性代码片断相关联的元数据,所述元数据至少指示相关联的代表性代码片断中的变化点;以及

由所述第一系统将所生成的元数据存储在所述知识库中。

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

由所述第二系统基于相关联的元数据来突出所呈现的代表性代码片断中的至少一个所呈现的代表性代码片断中的所述变化点。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1