基于领域知识图的冲突感知Python兼容运行时环境推断
软件工程
2022-01-19 v1
摘要
代码共享与复用是软件工程中普遍的实践。尽管大量开源Python代码可在众多在线平台获取,程序员常发现难以恢复成功的运行时环境。先前的研究验证了利用预构建知识库自动推断Python依赖项。然而,这些研究未涵盖足够知识以精确匹配Python代码,且忽略了推断依赖之间的潜在冲突,导致推断成功率低下。本文中,我们提出PyCRE,一种利用领域知识图(KG)自动推断Python兼容运行时环境的新方法。具体而言,我们为Python第三方包设计了领域本体,并为Python 2与Python 3中超过10,000个流行包构建了知识图。PyCRE通过度量已知库与目标代码所用第三方资源之间的匹配度来发现候选库。针对依赖求解的NP完全问题,我们提出一种启发式图遍历算法以高效保证包间兼容性。PyCRE在真实数据集上取得优越性能,并比先前方法多解决了近一半的导入错误。
引用
@article{arxiv.2201.07029,
title = {Conflict-aware Inference of Python Compatible Runtime Environments with Domain Knowledge Graph},
author = {Wei Cheng and Xiangrong Zhu and Wei Hu},
journal= {arXiv preprint arXiv:2201.07029},
year = {2022}
}
备注
Accepted in the 44th International Conference on Software Engineering (ICSE 2022)