基于整数线性规划的类型导向代码复用
软件工程
2016-08-30 v1 编程语言
摘要
在许多常见场景中,程序员需要实现某些第三方库已提供的功能。本文提出一个名为 Hunter 的工具,通过在大代码库中查找相关方法并自动合成必要的包装代码来促进代码复用。我们方法背后的关键技术理念是利用类型同时改进搜索结果并指导合成。具体而言,我们的方法计算类型间的相似度度量,并利用该信息求解一个整数线性规划(ILP)问题,其目标是最小化合成代价。我们已将 Hunter 实现为 Eclipse 插件,并通过 (a) 与前沿代码复用工具 S6 对比,以及 (b) 开展用户研究来评估它。评估表明 Hunter 优于 S6,并显著提升了程序员生产力。
引用
@article{arxiv.1608.07745,
title = {Type-Directed Code Reuse using Integer Linear Programming},
author = {Yuepeng Wang and Yu Feng and Ruben Martins and Arati Kaushik and Isil Dillig and Steven P. Reiss},
journal= {arXiv preprint arXiv:1608.07745},
year = {2016}
}