买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明提供一种基于接口文档的动态代码生成方法及系统,涉及软件开发技术领域,包括获取接口文档并进行预处理,将预处理后的接口文档划分为多个语义块,将得到的语义块表示与预先构建的软件工程领域知识图谱中的概念实体进行链接,得到语义块的三元组表示;把代码模板的结构优化问题建模为多目标优化模型,通过求解所述多目标优化模型得到结构最优的代码模板;基于结构最优的代码模板,将自然语言描述解析为初始抽象语法树并与不同编程语言的语法模板进行匹配,同时,利用预训练的编程语言转换模型将初始抽象语法树转换为目标编程语言的抽象语法树,最后根据转换后的抽象语法树生成语法正确的目标代码。
主权项:1.一种基于接口文档的动态代码生成方法,其特征在于,包括:获取接口文档并进行预处理,将预处理后的接口文档划分为多个语义块,其中包括函数签名、参数列表和返回值描述,对各个语义块进行词嵌入处理,得到语义块的分布式向量表示,将所述分布式向量表示输入预先构建的双向长短时记忆网络中,结合上下文信息自适应地调整对不同语义块的关注度,得到融合上下文信息的语义块表示,将得到的语义块表示与预先构建的软件工程领域知识图谱中的概念实体进行链接,基于链接的概念实体信息将语义块表示组织为三元组形式,得到语义块的三元组表示;基于语义块的三元组表示构建代码模板库,通过自适应挖掘算法从代码模版库中提取候选代码模板,依据覆盖度、精确度和可读性对候选代码模板进行评估筛选,并利用符号执行算法对筛选出的代码模板进行参数化,得到目标代码模板,对目标代码模板进行结构优化,把代码模板的结构优化问题建模为多目标优化模型,通过求解所述多目标优化模型得到结构最优的代码模板;基于结构最优的代码模板,将自然语言描述解析为初始抽象语法树并与不同编程语言的语法模板进行匹配,同时,利用预训练的编程语言转换模型将初始抽象语法树转换为目标编程语言的抽象语法树,所述编程语言转换模型采用编码器-解码器网络,在解码过程中融合目标编程语言的语法约束,最后根据转换后的抽象语法树生成语法正确的目标代码;将得到的语义块表示与预先构建的软件工程领域知识图谱中的概念实体进行链接,基于链接的概念实体信息将语义块表示组织为三元组形式,得到语义块的三元组表示包括:计算每个语义块表示与预先构建的软件工程领域知识图谱中概念实体的相似度,筛选出与每个语义块表示对应的知识图谱实体,并将语义块表示与筛选出的知识图谱实体的连接关系生成初步三元组;基于语义块表示和筛选出的知识图谱实体构建图结构,语义块和知识图谱实体作为图中的节点,语义块与知识图谱实体的连接关系、以及知识图谱中实体与实体之间的关系作为连接节点的边,通过多层图卷积操作,将每个节点的特征表示与其邻居节点的特征进行聚合,逐步更新当前节点的表示,得到融合知识图谱实体及实体间关系的节点表示,并引入多跳传播机制增强节点的语义信息,同时采用注意力机制,动态调整每个节点对其邻居节点的关注度,最终得到目标节点表示,基于所述目标节点表示,得到初始三元组表示,其中包括语义块、与语义块对应的知识图谱实体以及关系;基于所述初始三元组表示,构建有效三元组和无效三元组作为自监督学习的输入,构建双层编码器,其中,采用第一层编码器对语义块和知识图谱实体进行向量化表示,得到语义块和知识图谱实体的高维向量表示,采用第二层编码器在第一层编码器的基础上引入对比学习机制,通过优化对比学习目标函数最小化有效三元组的语义距离同时最大化无效三元组的语义距离,最终生成语义块的目标三元组表示。
全文数据:
权利要求:
百度查询: 宁波鑫义信息科技有限公司 基于接口文档的动态代码生成方法及系统
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。