coderZMR / CodeRecommendSynthesis

代码推荐文章整理
1 stars 0 forks source link

信息检索 #1

Open coderZMR opened 4 years ago

wjwen23 commented 4 years ago

Raghothaman M, Wei Y, Hamadi Y. SWIM: Synthesizing What I Mean Code Search and Idiomatic Snippet Synthesis. In: Proceedings of the 38th International Conference on Software Engineering, Austin, 2016. 357-367 使用clickthrough data训练用户输入的查询语句中的单词对应API的统计词对齐模型,使用该统计词对齐模型对查询语句中所对应的API概率形成查询向量,使用cosine计算结构化调用序列向量与查询向量的距离,找到查询语句所对应最合适的结构化调用序列,再由结构化调用序列合成代码片段。

wjwen23 commented 4 years ago

Thomas D, Martin M. DynaMoth: dynamic code synthesis for automatic program repair. Proceedings of the 11th International Workshop on Automation of Software Test, AST@ICSE 2016, Austin, USA, 2016. 85-91 基于DynaMoth为Nopol修复系统提供新的代码融合引擎。通过方法调用生成程序中的缺陷。

wjwen23 commented 4 years ago

Tihomir G, Viktor K, Ruzica P. Interactive Synthesis of Code Snippets. In: Computer Aided Verification. CAV 2011. Lecture Notes in Computer Science, vol 6806. Springer, Berlin, Heidelberg. 418-423. 本文提出了一种工具InSyhth,旨在通过交互,帮助开发人员对算法进行综合,生成代码片段。InSyhth部署在集成开发环境中,它依靠输入的文本信息来执行算法融合的任务。对于用户给定的参数和声明,它利用Ensime来收集可用的值、字段和函数。

wjwen23 commented 4 years ago

Itzhaky S, Gulwani S, Immerman N, et al. A simple inductive synthesis methodology and its applications. In: ACM Sigplan Notices. ACM, 2010, 45(10). 36-46. 本文提出了一种新的归纳合成算法,用于自动生成符合规范的程序。本文采用二阶逻辑作为通用规范逻辑。输入是用逻辑表达的规范,输出是目标语言。本文通过一阶逻辑加传递闭合进行翻译与融合。

Fatead commented 4 years ago

Asaduzzaman M, Roy C K, Schneider K A, et al. CSCC: Simple, efficient, context sensitive code completion. In: 2014 IEEE International Conference on Software Maintenance and Evolution. 2014, 71-80. 作者提出一种上下文相关的代码补全技术CSCC,通过对于之前的代码样例进行检索来提供代码补全建议,主要采用的方法是计算代码之间的相似度。

wjwen23 commented 4 years ago

DynaMoth: dynamic code synthesis for automatic program repair

原始的策略是采用代码融合生成不含参数的一元方法调用,本文基于动态探索生成多种方法调用的融合代码。DynaMoth主要思想是在bug处,基于声明,探索所有可能的表述方式,并进行单元测试。

wjwen23 commented 4 years ago

Tihomir G, Viktor K, Ruzica P. Interactive Synthesis of Code Snippets. In: Computer Aided Verification. CAV 2011. Lecture Notes in Computer Science, vol 6806. Springer, Berlin, Heidelberg. 418-423. 本文提出了一种工具InSyhth,旨在通过交互,帮助开发人员对算法进行综合,生成代码片段。InSyhth部署在集成开发环境中,它依靠输入的文本信息来执行算法融合的任务。对于用户给定的参数和声明,它利用Ensime来收集可用的值、字段和函数。

InSyhth主要依靠类型信息来完成代码合成任务,该工具对比于之前的工具,其主要的特点是加入了对泛型的数据类型的支持,实现该支持是通过使用一阶归结技术将类型约束形式化为一阶逻辑,当调用该工具时,它会根据给定的程序位置使用类型信息以及测试用例推荐多个有意义的表达式。