中文

多种源代码表示对软件工程任务的影响——一项实证研究

软件工程 2023-12-27 v5

摘要

高效地表示源代码对于代码分类和克隆检测等多种软件工程任务至关重要。现有方法主要使用抽象语法树(AST),仅有少数关注控制流图(CFG)和程序依赖图(PDG)等语义图,它们包含 AST 所不具备的源代码信息。尽管一些工作尝试利用多种表示,但它们并未提供关于使用多种表示的代价与收益的见解。本文的主要目标是讨论利用多种代码表示(具体为 AST、CFG 和 PDG)的影响。我们修改了一种基于 AST 路径的方法,以接受多种表示作为基于注意力模型的输入。我们这样做是为了衡量额外表示(如 CFG 和 PDG)相对于 AST 的影响。我们在三个任务上评估了我们的方法:方法命名、程序分类和克隆检测。相较于基线,我们的方法在这些任务上的性能分别提升了 11%(F1)、15.7%(准确率)和 9.3%(F1)。除对性能的影响外,我们还讨论了多种表示带来的时间开销。我们期望本工作为研究者提供评估各种任务中代码表示组合的视角。

关键词

引用

@article{arxiv.2106.10918,
  title  = {On the Impact of Multiple Source Code Representations on Software Engineering Tasks -- An Empirical Study},
  author = {Karthik Chandra Swarna and Noble Saji Mathews and Dheeraj Vagavolu and Sridhar Chimalakonda},
  journal= {arXiv preprint arXiv:2106.10918},
  year   = {2023}
}