
摘要
从自然语言描述自动生成代码在软件开发过程中具有重要应用价值。本文提出一种基于Python语法约束与语义约束的引导式自动Python代码生成方法——GAP-Gen。我们首先引入一种名为Syntax-Flow的Python语法约束表示形式,它是抽象语法树(Abstract Syntax Tree, AST)的简化版本,有效降低了AST的规模与复杂度,同时保留了Python代码的关键语法信息。此外,我们还提出了Variable-Flow,用于在代码中一致地抽象变量名与函数名,从而增强生成代码的语义连贯性。与以往依赖大规模预训练的方法不同,本工作聚焦于优化微调(fine-tuning)过程,显著降低计算资源需求,同时在自动Python代码生成任务中仍保持优异的生成性能。GAP-Gen采用基于Transformer的语言模型T5与CodeT5,利用EdinburghNLP提供的Code-to-Docstring数据集——CodeSearchNet、CodeSearchNet AdvTest以及Code-Docstring Corpus进行微调。实验结果表明,GAP-Gen在自动Python代码生成任务上的表现优于现有方法。