发明名称 |
代码片段的泛化和/或特化 |
摘要 |
代码片段的泛化和/或特化被描述为例如软件开发者的工具的一部分。在一实施例中,开发者将表达编程任务的自然语言插入他或她正在集成开发环境中开发的代码;程序合成器获得该任务的相关的(可能非编译的)代码片段,将它们合并在一起以形成代码段,针对该代码的上下文特化该代码段并将经特化的代码段插入该代码。例如,一对代码片段从搜索引擎获得,并且通过丢弃并非对该对代码片段的每一个代码片段共同的语句而被合并。在各示例中,使用搜索引擎排名、用户输入或频率来选择各对代码片段。在各实施例中,占位符代替所合并的片段中的变量名。一示例取得被开发的代码的句法树,并且用该句法树来特化代码段。 |
申请公布号 |
CN104428750A |
申请公布日期 |
2015.03.18 |
申请号 |
CN201380036188.9 |
申请日期 |
2013.07.04 |
申请人 |
微软公司 |
发明人 |
L·J·博德奥科斯;S·古尔瓦尼;Y·哈马迪;Y·魏 |
分类号 |
G06F9/44(2006.01)I;G06F17/27(2006.01)I |
主分类号 |
G06F9/44(2006.01)I |
代理机构 |
上海专利商标事务所有限公司 31100 |
代理人 |
陈小刚 |
主权项 |
一种方法,包括:获得表达编程任务的自然语言;获得包括源代码细节的上下文,其中所述自然语言位于所述源代码中;在处理器处,使用所述自然语言来获得与所述编程任务相关的多个源代码片段;从泛化器接收代码段,所述代码段已经通过将至少一对源代码片段合并成单个代码段并且抽走经合并的源代码片段的一个或多个细节而形成;以及将所述上下文和所述代码段发送至特化器并且从所述特化器接收经特化的代码段,所述经特化的代码段是根据所述上下文特化的代码段。 |
地址 |
美国华盛顿州 |