ADFCoder:基于具有复杂逻辑结构流程图图像及领域特定需求的演化需求理解技术

《Applied Soft Computing》:ADFCoder: Evolutionary requirements comprehension based on flowchart image with complex logic structure and domain-specific requirements

【字体: 大 中 小 】 时间:2026年07月10日 来源:Applied Soft Computing 7.8

编辑推荐:

  乔科|赵明|董云伟|马辛·沃兹尼亚克|张天田|田胜杰中国深圳市518057,西北工业大学深圳研究院摘要利用查询文本和代码片段进行代码生成,显著提升了基于大型语言模型构建代码检索模型的效果与能力。然而,针对特定领域应用时,要生成包含大量逻辑结构的完整代码而非仅代码片段,仍面临诸多挑

  乔科|赵明|董云伟|马辛·沃兹尼亚克|张天田|田胜杰中国深圳市518057,西北工业大学深圳研究院摘要利用查询文本和代码片段进行代码生成,显著提升了基于大型语言模型构建代码检索模型的效果与能力。然而,针对特定领域应用时,要生成包含大量逻辑结构的完整代码而非仅代码片段,仍面临诸多挑战。为应对这些挑战,我们提出了一种深度框架ADFCoder,它能根据包含明确需求文本及复杂逻辑关系的流程图来生成代码,以满足特定领域的功能需求。ADFCoder由三个依次运行的模块组成:流程图识别器、逻辑推理器和代码生成器。其中,流程图识别器可自动并行处理流程图图像中的图形元素与需求文本识别工作;而流程图逻辑推理器则能基于识别出的元素构建程序结构树,准确呈现需求中的逻辑结构。随后,代码生成器能够协同整合并分析流程图程序结构树与需求文本,且在生成过程中不会出现语法错误,同时还会借助大型语言模型以及我们的领域知识库来处理元素中的需求文本。此外,我们还建立了首个数据集F2C-3B,用于以流程图作为需求描述形式进行代码生成任务,这些任务涉及经典数学算法以及航空航天领域的专业算法。ADFCoder中的识别器在F2C-3B数据集上的平均识别准确率可达99%。另外,在一些特定领域问题中,通过大规模模型的领域专用向量处理以及检索增强生成技术,代码生成的性能也得到了显著提升。引言代码生成因借助深度学习技术,尤其是大型语言模型,能够大幅提升程序员的工作效率,因而受到了广泛关注[1]。这些技术在现代软件开发中发挥着关键作用,它们可实现编码任务的自动化,减少人为错误,进而加快软件开发进程。不过,代码生成也存在若干重大挑战,这些挑战影响着该技术的广泛应用与实际效果。通常而言,用户意图可通过多种形式表达,包括输入/输出示例、自然语言描述、伪代码以及正式规范[2]。通过将这类用户意图与现有的代码片段进行匹配,代码生成已取得了不错的成果[3]、[4]。但代码生成的精确度与可靠性仍主要受两个因素限制:搜索生成算法的效能,以及可用代码语料的规模与质量[5]。若匹配算法效率低下,就可能会生成次优的代码建议;而当代码语料有限或过时时,生成的代码往往会出现无关模式,从而导致生成的代码要么无法满足用户需求,要么会引发功能错误。这些局限性凸显出需要更多的优化方法与技术,以及高质量的代码语料,以提高代码生成任务的精确度与稳定性。要充分挖掘代码生成的潜力,确保其在现实世界的软件开发中得到实际应用,十分重要[6]、[7]。在特定领域应用中,为保证代码生成的准确性与时完整性,我们必须充分考虑严格的需求规格。这类场景往往要求用单一执行流程来表达完整的控制逻辑以及一系列特定功能的精确实现,而非使用通用编程语言[8]。由于特定领域需求具有复杂的特性,需要大量的领域知识、复杂的控制逻辑关联以及多方面的功能操作,这进一步增加了代码生成的难度。因此,我们采用流程图作为对用户意图的精准描述方式。这是因为流程图能够清晰直观地展现算法控制、逻辑关系以及各交互组件之间功能操作的语义[9]、[10]、[11]。而且,流程图中对复杂循环关系的描述,借助一定的确定性转换规则,便于系统地将其转化为可执行的代码,这不仅提升了代码生成的效率,还提高了其精确度,从而无需再用自然语言来表述那些复杂却又明确的逻辑关系。尽管如此,在特定领域需求的获取与理解、代码检索以及其他相关领域,仍然存在诸多重大挑战。特定领域需求往往包含复杂且精细的规格要求,难以直接进行代码转换。此外,由于对控制逻辑的极度依赖,必须建立严格的验证机制,以确保最终生成代码的功能正确性。这些挑战凸显出,需要在特定领域代码生成中采用形式化方法来建模逻辑关系,并运用精确的技术来保留操作语义。正因如此,我们需要具备精确控制能力的形式化方法,这样才能妥善处理逻辑关系,同时还能合理管理功能操作,满足该领域的特定需求[12]。因此,我们针对特定领域代码生成中的核心挑战,提出了可靠且高效的解决方案。当前的研究表明,现有的流程图转代码方法仅能处理简单的流程图和定义明确的公式。然而,特定领域应用通常涉及一系列复杂且高度关联的需求。流程图转代码生成面临三大主要挑战:准确解读控制逻辑结构、精准理解特定领域需求片段,以及构建能够忠实反映用户意图的、无歧义的流程图表示形式。目前的各种方法和技术往往无法有效应对多分支、嵌套循环等复杂结构,也无法充分处理将自然语言注释集成到流程图中所示的特定领域操作或函数中的问题[13]。为解决这些挑战,我们提出了一种深度框架ADFCoder,可用于从特定领域流程图生成C语言程序代码。ADFCoder的架构由三个核心组件构成:流程图识别器、逻辑推理器和代码生成器。首先,流程图识别器运用双神经网络、形状连接检测器以及文本识别器,自动解析并表示流程图元素。其次,我们提出了一种带有语义信息的流程图树形数据结构FPST-OS,它通过融入领域知识,能够对控制逻辑结构进行建模,涵盖循环、分支以及循环终止条件等复杂结构。最后,代码生成器则通过与FPST-OS以及领域知识库相结合来实现功能。众多综合评估结果表明,ADFCoder在流程图转代码生成任务中取得了显著提升。我们总结本研究的主要贡献如下:(1)F2C-3B是首个在特定领域构建的图像流程图数据集,其中包含独立的元素、完整的算法以及航空航天控制算法。(2)本文介绍了ADFCoder这一基于深度学习的框架,它专为从流程图生成特定领域代码而设计,能够通过将领域知识与嵌入在大型语言模型中的通用知识相结合,高效地生成代码。(3)逻辑推理器中有一种名为“循环判断”的算法,它借助流程图的程序结构树及其操作语义FPST-OS,自动识别并表示复杂的循环结构,同时该算法还能确保流程图的唯一性。(4)代码生成器能够与预训练的深度学习模型以及基于搜索的算法相集成,从而生成体现流程图中指定文本需求的特定领域代码片段。总之,深度框架ADFCoder在解决特定领域以及大规模代码生成问题方面表现优异。相关研究代码生成旨在通过契合用户意图,提升程序员的工作效率,减少开发人员繁琐的任务[14]。我们简要介绍了构成本研究基础的三个基本概念:理解并识别流程图中的用户意图,以及为自然语言需求预训练深度搜索算法。方法论本文旨在通过一个名为ADFCoder的深度框架来解决利用特定领域流程图理解用户意图并生成代码的问题,该框架由流程图识别器、逻辑推理器和代码生成器这三个模块组成,如图1所示。具体而言,我们定义了一种基于深度学习框架的损失函数的特定领域流程图转代码生成处理方法,其中 为表示用户意图的特定领域流程图图像, 则表示对应的C语言程序代码。实验在本节中,我们通过大量实验对ADFCoder的识别器、推理器以及生成器模块进行了评估,并在实际应用案例中进行了对比分析。在此之前,我们为ADFCoder构建了一个包含三种形式的需求以及相应嵌套逻辑关系的流程图图像数据集。结论本研究通过三项关键技术突破,提出了一种全新的深度框架,可用于将特定领域的算法流程图转换为可执行的代码。(1)本研究开发了一种混合解析器,它将计算机视觉技术与形式化方法相结合,用于分析复杂的控制逻辑。这种方法提升了特定领域需求的表达能力,与深度学习技术结合后,进一步大幅提升了代码生成的能力与范围。(2)……利益冲突声明作者声明自己不存在任何可能影响本文所述工作的已知财务利益或个人关系。CRediT作者贡献说明乔科:撰写——初稿、方法论、概念设计。赵明:数据整理。董云伟:撰写——审阅与编辑、验证、项目管理。马辛·沃兹尼亚克:概念设计、撰写——审阅与编辑。张天田:撰写——初稿、软件相关内容。田胜杰:撰写——初稿。利益冲突声明作者声明存在以下可能被视为潜在利益冲突的财务利益/个人关系:魏东云称自己获得了中国国家自然科学基金的资金支持;乔科也表示自己得到了中国国家自然科学基金的资助。如果还有其他作者,他们也声明自己不存在任何可能影响本文工作的已知财务利益或个人关系。致谢本研究得到了中国国家自然科学基金重大项目(编号62192730、62192733)以及广东省基础与应用基础研究基金(编号2023A1515011589)的支持。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号