由编程任务知识图谱驱动的任务导向型 API 用法示例提示
软件工程
2020-06-15 v1
摘要
编程教程通常用以通过代码示例演示编程任务。然而,我们对 Stack Overflow 问题的研究表明,高质量编程教程的利用率很低,其成因是任务描述不匹配和代码信息过载。文档搜索能找到相关教程文档,但往往无法找到与开发者任务需求相关的具体编程动作和代码解决方案。近期提出的基于知识图谱的以活动为中心的搜索支持直接搜索编程动作,但其在动作覆盖度、基于自然语言的任务搜索以及粗粒度代码示例推荐方面存在局限。在本工作中,我们利用从代码示例注释中提取的动作以及更多形式的动作语句增强了知识图谱中的动作覆盖度。为克服任务描述不匹配问题,我们开发了基于代码匹配的任务搜索方法,以针对正在开发的代码找到相关的编程动作和代码示例。我们将知识图谱与任务搜索方法集成到 IDE 中,并开发了基于观察-推送的工具,向开发者提示任务导向的 API 用法示例。为缓解代码信息过载问题,我们的工具基于底层知识图谱在提示的教程任务摘录和代码示例中高亮编程动作与 API 信息。我们的评估证实了所构建知识图谱的高质量,并表明我们基于代码匹配的任务搜索能为 Stack Overflow 上提出的编程问题推荐有效的代码解决方案。小规模用户研究表明,我们的工具有助于协助开发者在其编程任务中查找和使用相关编程教程。
引用
@article{arxiv.2006.07058,
title = {Task-Oriented API Usage Examples Prompting Powered By Programming Task Knowledge Graph},
author = {Jiamou Sun and Zhenchang Xing and Xin Peng and Xiwei Xu and Liming Zhu},
journal= {arXiv preprint arXiv:2006.07058},
year = {2020}
}