中文

通过自反思方法生成等效代码表示

计算与语言 2024-10-07 v1 编程语言 软件工程

摘要

代码的等效表示(Equivalent Representations, ERs)是指保持代码自身相同语义的文本表示,例如自然语言注释和伪代码。ERs在软件开发和维护中发挥着关键作用。然而,如何自动生成代码的ERs仍是一个开放的挑战。本文提出了一种自反思方法来生成代码的ERs。该方法使两个大语言模型(LLMs)能够通过反思过程协同工作并生成ER。 Depending on whether constraints on ERs are applied, our approach generates ERs in both open and constrained settings. 我们进行了一次经验研究,在两种设置下生成ERs并获得八个发现。 (1) 在开放设置下生成ERs。在开放设置下,我们允许LLMs在没有任何约束的情况下表示代码,分析所得的ERs并发现五个关键发现。这些发现阐明了LLMs如何理解代码中的语法结构、API和数值计算。 (2) 在受约束设置下生成ERs。在受约束设置下,我们对ERs施加约束,例如自然语言注释、伪代码和流程图。这使我们的 approach 能够解决一系列软件工程任务。基于我们的实验,我们有三个发现表明我们的 approach 能够有效生成符合特定约束的ER,从而支持各种软件工程任务。 (3) 未来方向。我们还讨论了潜在的未来研究方向,例如为代码生成派生中间语言、探索LLM友好的需求描述以及进一步支持软件工程任务。我们相信本论文将在研究社区引发讨论,并激发许多后续研究。

关键词

引用

@article{arxiv.2410.03351,
  title  = {Generating Equivalent Representations of Code By A Self-Reflection Approach},
  author = {Jia Li and Ge Li and Lecheng Wang and Hao Zhu and Zhi Jin},
  journal= {arXiv preprint arXiv:2410.03351},
  year   = {2024}
}